(function webpackUniversalModuleDefinition(root, factory){ if(typeof exports==='object'&&typeof module==='object') module.exports=factory(require("moment"), require("jquery")); else if(typeof define==='function'&&define.amd) define(["moment", "jquery"], factory); else if(typeof exports==='object') exports["FullCalendar"]=factory(require("moment"), require("jquery")); else root["FullCalendar"]=factory(root["moment"], root["jQuery"]); })(typeof self!=='undefined' ? self:this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__){ return (function(modules){ var installedModules={}; function __webpack_require__(moduleId){ if(installedModules[moduleId]){ return installedModules[moduleId].exports; } var module=installedModules[moduleId]={ i: moduleId, l: false, exports: {} }; modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); module.l=true; return module.exports; } __webpack_require__.m=modules; __webpack_require__.c=installedModules; __webpack_require__.d=function(exports, name, getter){ if(!__webpack_require__.o(exports, name)){ Object.defineProperty(exports, name, { configurable: false, enumerable: true, get: getter }); } }; __webpack_require__.n=function(module){ var getter=module&&module.__esModule ? function getDefault(){ return module['default']; } : function getModuleExports(){ return module; }; __webpack_require__.d(getter, 'a', getter); return getter; }; __webpack_require__.o=function(object, property){ return Object.prototype.hasOwnProperty.call(object, property); }; __webpack_require__.p=""; return __webpack_require__(__webpack_require__.s=236); }) ([ (function(module, exports){ module.exports=__WEBPACK_EXTERNAL_MODULE_0__; }), , (function(module, exports){ var extendStatics=Object.setPrototypeOf || ({ __proto__: [] } instanceof Array&&function (d, b){ d.__proto__=b; }) || function (d, b){ for (var p in b) if(b.hasOwnProperty(p)) d[p]=b[p]; }; exports.__extends=function (d, b){ extendStatics(d, b); function __(){ this.constructor=d; } d.prototype=b===null ? Object.create(b):(__.prototype=b.prototype, new __()); }; }), (function(module, exports){ module.exports=__WEBPACK_EXTERNAL_MODULE_3__; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var moment=__webpack_require__(0); var $=__webpack_require__(3); function compensateScroll(rowEls, scrollbarWidths){ if(scrollbarWidths.left){ rowEls.css({ 'border-left-width': 1, 'margin-left': scrollbarWidths.left - 1 }); } if(scrollbarWidths.right){ rowEls.css({ 'border-right-width': 1, 'margin-right': scrollbarWidths.right - 1 }); }} exports.compensateScroll=compensateScroll; function uncompensateScroll(rowEls){ rowEls.css({ 'margin-left': '', 'margin-right': '', 'border-left-width': '', 'border-right-width': '' }); } exports.uncompensateScroll=uncompensateScroll; function disableCursor(){ $('body').addClass('fc-not-allowed'); } exports.disableCursor=disableCursor; function enableCursor(){ $('body').removeClass('fc-not-allowed'); } exports.enableCursor=enableCursor; function distributeHeight(els, availableHeight, shouldRedistribute){ var minOffset1=Math.floor(availableHeight / els.length); var minOffset2=Math.floor(availableHeight - minOffset1 * (els.length - 1)); var flexEls=[]; var flexOffsets=[]; var flexHeights=[]; var usedHeight=0; undistributeHeight(els); els.each(function (i, el){ var minOffset=i===els.length - 1 ? minOffset2:minOffset1; var naturalOffset=$(el).outerHeight(true); if(naturalOffset < minOffset){ flexEls.push(el); flexOffsets.push(naturalOffset); flexHeights.push($(el).height()); }else{ usedHeight +=naturalOffset; }}); if(shouldRedistribute){ availableHeight -=usedHeight; minOffset1=Math.floor(availableHeight / flexEls.length); minOffset2=Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); } $(flexEls).each(function (i, el){ var minOffset=i===flexEls.length - 1 ? minOffset2:minOffset1; var naturalOffset=flexOffsets[i]; var naturalHeight=flexHeights[i]; var newHeight=minOffset - (naturalOffset - naturalHeight); if(naturalOffset < minOffset){ $(el).height(newHeight); }}); } exports.distributeHeight=distributeHeight; function undistributeHeight(els){ els.height(''); } exports.undistributeHeight=undistributeHeight; function matchCellWidths(els){ var maxInnerWidth=0; els.find('> *').each(function (i, innerEl){ var innerWidth=$(innerEl).outerWidth(); if(innerWidth > maxInnerWidth){ maxInnerWidth=innerWidth; }}); maxInnerWidth++; els.width(maxInnerWidth); return maxInnerWidth; } exports.matchCellWidths=matchCellWidths; function subtractInnerElHeight(outerEl, innerEl){ var both=outerEl.add(innerEl); var diff; both.css({ position: 'relative', left: -1 }); diff=outerEl.outerHeight() - innerEl.outerHeight(); both.css({ position: '', left: '' }); return diff; } exports.subtractInnerElHeight=subtractInnerElHeight; function getScrollParent(el){ var position=el.css('position'); var scrollParent=el.parents().filter(function (){ var parent=$(this); return (/(auto|scroll)/).test(parent.css('overflow') + parent.css('overflow-y') + parent.css('overflow-x')); }).eq(0); return position==='fixed'||!scrollParent.length ? $(el[0].ownerDocument||document):scrollParent; } exports.getScrollParent=getScrollParent; function getOuterRect(el, origin){ var offset=el.offset(); var left=offset.left - (origin ? origin.left:0); var top=offset.top - (origin ? origin.top:0); return { left: left, right: left + el.outerWidth(), top: top, bottom: top + el.outerHeight() };} exports.getOuterRect=getOuterRect; function getClientRect(el, origin){ var offset=el.offset(); var scrollbarWidths=getScrollbarWidths(el); var left=offset.left + getCssFloat(el, 'border-left-width') + scrollbarWidths.left - (origin ? origin.left:0); var top=offset.top + getCssFloat(el, 'border-top-width') + scrollbarWidths.top - (origin ? origin.top:0); return { left: left, right: left + el[0].clientWidth, top: top, bottom: top + el[0].clientHeight };} exports.getClientRect=getClientRect; function getContentRect(el, origin){ var offset=el.offset(); var left=offset.left + getCssFloat(el, 'border-left-width') + getCssFloat(el, 'padding-left') - (origin ? origin.left:0); var top=offset.top + getCssFloat(el, 'border-top-width') + getCssFloat(el, 'padding-top') - (origin ? origin.top:0); return { left: left, right: left + el.width(), top: top, bottom: top + el.height() };} exports.getContentRect=getContentRect; function getScrollbarWidths(el){ var leftRightWidth=el[0].offsetWidth - el[0].clientWidth; var bottomWidth=el[0].offsetHeight - el[0].clientHeight; var widths; leftRightWidth=sanitizeScrollbarWidth(leftRightWidth); bottomWidth=sanitizeScrollbarWidth(bottomWidth); widths={ left: 0, right: 0, top: 0, bottom: bottomWidth }; if(getIsLeftRtlScrollbars()&&el.css('direction')==='rtl'){ widths.left=leftRightWidth; }else{ widths.right=leftRightWidth; } return widths; } exports.getScrollbarWidths=getScrollbarWidths; function sanitizeScrollbarWidth(width){ width=Math.max(0, width); width=Math.round(width); return width; } var _isLeftRtlScrollbars=null; function getIsLeftRtlScrollbars(){ if(_isLeftRtlScrollbars===null){ _isLeftRtlScrollbars=computeIsLeftRtlScrollbars(); } return _isLeftRtlScrollbars; } function computeIsLeftRtlScrollbars(){ var el=$('
') .css({ position: 'absolute', top: -1000, left: 0, border: 0, padding: 0, overflow: 'scroll', direction: 'rtl' }) .appendTo('body'); var innerEl=el.children(); var res=innerEl.offset().left > el.offset().left; el.remove(); return res; } function getCssFloat(el, prop){ return parseFloat(el.css(prop))||0; } function isPrimaryMouseButton(ev){ return ev.which===1&&!ev.ctrlKey; } exports.isPrimaryMouseButton=isPrimaryMouseButton; function getEvX(ev){ var touches=ev.originalEvent.touches; if(touches&&touches.length){ return touches[0].pageX; } return ev.pageX; } exports.getEvX=getEvX; function getEvY(ev){ var touches=ev.originalEvent.touches; if(touches&&touches.length){ return touches[0].pageY; } return ev.pageY; } exports.getEvY=getEvY; function getEvIsTouch(ev){ return /^touch/.test(ev.type); } exports.getEvIsTouch=getEvIsTouch; function preventSelection(el){ el.addClass('fc-unselectable') .on('selectstart', preventDefault); } exports.preventSelection=preventSelection; function allowSelection(el){ el.removeClass('fc-unselectable') .off('selectstart', preventDefault); } exports.allowSelection=allowSelection; function preventDefault(ev){ ev.preventDefault(); } exports.preventDefault=preventDefault; function intersectRects(rect1, rect2){ var res={ left: Math.max(rect1.left, rect2.left), right: Math.min(rect1.right, rect2.right), top: Math.max(rect1.top, rect2.top), bottom: Math.min(rect1.bottom, rect2.bottom) }; if(res.left < res.right&&res.top < res.bottom){ return res; } return false; } exports.intersectRects=intersectRects; function constrainPoint(point, rect){ return { left: Math.min(Math.max(point.left, rect.left), rect.right), top: Math.min(Math.max(point.top, rect.top), rect.bottom) };} exports.constrainPoint=constrainPoint; function getRectCenter(rect){ return { left: (rect.left + rect.right) / 2, top: (rect.top + rect.bottom) / 2 };} exports.getRectCenter=getRectCenter; function diffPoints(point1, point2){ return { left: point1.left - point2.left, top: point1.top - point2.top };} exports.diffPoints=diffPoints; function parseFieldSpecs(input){ var specs=[]; var tokens=[]; var i; var token; if(typeof input==='string'){ tokens=input.split(/\s*,\s*/); } else if(typeof input==='function'){ tokens=[input]; } else if($.isArray(input)){ tokens=input; } for (i=0; i < tokens.length; i++){ token=tokens[i]; if(typeof token==='string'){ specs.push(token.charAt(0)==='-' ? { field: token.substring(1), order: -1 } : { field: token, order: 1 }); } else if(typeof token==='function'){ specs.push({ func: token }); }} return specs; } exports.parseFieldSpecs=parseFieldSpecs; function compareByFieldSpecs(obj1, obj2, fieldSpecs, obj1fallback, obj2fallback){ var i; var cmp; for (i=0; i < fieldSpecs.length; i++){ cmp=compareByFieldSpec(obj1, obj2, fieldSpecs[i], obj1fallback, obj2fallback); if(cmp){ return cmp; }} return 0; } exports.compareByFieldSpecs=compareByFieldSpecs; function compareByFieldSpec(obj1, obj2, fieldSpec, obj1fallback, obj2fallback){ if(fieldSpec.func){ return fieldSpec.func(obj1, obj2); } var val1=obj1[fieldSpec.field]; var val2=obj2[fieldSpec.field]; if(val1==null&&obj1fallback){ val1=obj1fallback[fieldSpec.field]; } if(val2==null&&obj2fallback){ val2=obj2fallback[fieldSpec.field]; } return flexibleCompare(val1, val2) * (fieldSpec.order||1); } exports.compareByFieldSpec=compareByFieldSpec; function flexibleCompare(a, b){ if(!a&&!b){ return 0; } if(b==null){ return -1; } if(a==null){ return 1; } if($.type(a)==='string'||$.type(b)==='string'){ return String(a).localeCompare(String(b)); } return a - b; } exports.flexibleCompare=flexibleCompare; exports.dayIDs=['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; exports.unitsDesc=['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; function diffDayTime(a, b){ return moment.duration({ days: a.clone().stripTime().diff(b.clone().stripTime(), 'days'), ms: a.time() - b.time() }); } exports.diffDayTime=diffDayTime; function diffDay(a, b){ return moment.duration({ days: a.clone().stripTime().diff(b.clone().stripTime(), 'days') }); } exports.diffDay=diffDay; function diffByUnit(a, b, unit){ return moment.duration(Math.round(a.diff(b, unit, true)), unit); } exports.diffByUnit=diffByUnit; function computeGreatestUnit(start, end){ var i; var unit; var val; for (i=0; i < exports.unitsDesc.length; i++){ unit=exports.unitsDesc[i]; val=computeRangeAs(unit, start, end); if(val >=1&&isInt(val)){ break; }} return unit; } exports.computeGreatestUnit=computeGreatestUnit; function computeDurationGreatestUnit(duration, durationInput){ var unit=computeGreatestUnit(duration); if(unit==='week'&&typeof durationInput==='object'&&durationInput.days){ unit='day'; } return unit; } exports.computeDurationGreatestUnit=computeDurationGreatestUnit; function computeRangeAs(unit, start, end){ if(end!=null){ return end.diff(start, unit, true); } else if(moment.isDuration(start)){ return start.as(unit); }else{ return start.end.diff(start.start, unit, true); }} function divideRangeByDuration(start, end, dur){ var months; if(durationHasTime(dur)){ return (end - start) / dur; } months=dur.asMonths(); if(Math.abs(months) >=1&&isInt(months)){ return end.diff(start, 'months', true) / months; } return end.diff(start, 'days', true) / dur.asDays(); } exports.divideRangeByDuration=divideRangeByDuration; function divideDurationByDuration(dur1, dur2){ var months1; var months2; if(durationHasTime(dur1)||durationHasTime(dur2)){ return dur1 / dur2; } months1=dur1.asMonths(); months2=dur2.asMonths(); if(Math.abs(months1) >=1&&isInt(months1) && Math.abs(months2) >=1&&isInt(months2)){ return months1 / months2; } return dur1.asDays() / dur2.asDays(); } exports.divideDurationByDuration=divideDurationByDuration; function multiplyDuration(dur, n){ var months; if(durationHasTime(dur)){ return moment.duration(dur * n); } months=dur.asMonths(); if(Math.abs(months) >=1&&isInt(months)){ return moment.duration({ months: months * n }); } return moment.duration({ days: dur.asDays() * n }); } exports.multiplyDuration=multiplyDuration; function durationHasTime(dur){ return Boolean(dur.hours()||dur.minutes()||dur.seconds()||dur.milliseconds()); } exports.durationHasTime=durationHasTime; function isNativeDate(input){ return Object.prototype.toString.call(input)==='[object Date]'||input instanceof Date; } exports.isNativeDate=isNativeDate; function isTimeString(str){ return typeof str==='string' && /^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(str); } exports.isTimeString=isTimeString; function log(){ var args=[]; for (var _i=0; _i < arguments.length; _i++){ args[_i]=arguments[_i]; } var console=window.console; if(console&&console.log){ return console.log.apply(console, args); }} exports.log=log; function warn(){ var args=[]; for (var _i=0; _i < arguments.length; _i++){ args[_i]=arguments[_i]; } var console=window.console; if(console&&console.warn){ return console.warn.apply(console, args); }else{ return log.apply(null, args); }} exports.warn=warn; var hasOwnPropMethod={}.hasOwnProperty; function mergeProps(propObjs, complexProps){ var dest={}; var i; var name; var complexObjs; var j; var val; var props; if(complexProps){ for (i=0; i < complexProps.length; i++){ name=complexProps[i]; complexObjs=[]; for (j=propObjs.length - 1; j >=0; j--){ val=propObjs[j][name]; if(typeof val==='object'){ complexObjs.unshift(val); } else if(val!==undefined){ dest[name]=val; break; }} if(complexObjs.length){ dest[name]=mergeProps(complexObjs); }} } for (i=propObjs.length - 1; i >=0; i--){ props=propObjs[i]; for (name in props){ if(!(name in dest)){ dest[name]=props[name]; }} } return dest; } exports.mergeProps=mergeProps; function copyOwnProps(src, dest){ for (var name_1 in src){ if(hasOwnProp(src, name_1)){ dest[name_1]=src[name_1]; }} } exports.copyOwnProps=copyOwnProps; function hasOwnProp(obj, name){ return hasOwnPropMethod.call(obj, name); } exports.hasOwnProp=hasOwnProp; function applyAll(functions, thisObj, args){ if($.isFunction(functions)){ functions=[functions]; } if(functions){ var i=void 0; var ret=void 0; for (i=0; i < functions.length; i++){ ret=functions[i].apply(thisObj, args)||ret; } return ret; }} exports.applyAll=applyAll; function removeMatching(array, testFunc){ var removeCnt=0; var i=0; while (i < array.length){ if(testFunc(array[i])){ array.splice(i, 1); removeCnt++; }else{ i++; }} return removeCnt; } exports.removeMatching=removeMatching; function removeExact(array, exactVal){ var removeCnt=0; var i=0; while (i < array.length){ if(array[i]===exactVal){ array.splice(i, 1); removeCnt++; }else{ i++; }} return removeCnt; } exports.removeExact=removeExact; function isArraysEqual(a0, a1){ var len=a0.length; var i; if(len==null||len!==a1.length){ return false; } for (i=0; i < len; i++){ if(a0[i]!==a1[i]){ return false; }} return true; } exports.isArraysEqual=isArraysEqual; function firstDefined(){ var args=[]; for (var _i=0; _i < arguments.length; _i++){ args[_i]=arguments[_i]; } for (var i=0; i < args.length; i++){ if(args[i]!==undefined){ return args[i]; }} } exports.firstDefined=firstDefined; function htmlEscape(s){ return (s + '').replace(/&/g, '&') .replace(//g, '>') .replace(/'/g, ''') .replace(/"/g, '"') .replace(/\n/g, '
'); } exports.htmlEscape=htmlEscape; function stripHtmlEntities(text){ return text.replace(/&.*?;/g, ''); } exports.stripHtmlEntities=stripHtmlEntities; function cssToStr(cssProps){ var statements=[]; $.each(cssProps, function (name, val){ if(val!=null){ statements.push(name + ':' + val); }}); return statements.join(';'); } exports.cssToStr=cssToStr; function attrsToStr(attrs){ var parts=[]; $.each(attrs, function (name, val){ if(val!=null){ parts.push(name + '="' + htmlEscape(val) + '"'); }}); return parts.join(' '); } exports.attrsToStr=attrsToStr; function capitaliseFirstLetter(str){ return str.charAt(0).toUpperCase() + str.slice(1); } exports.capitaliseFirstLetter=capitaliseFirstLetter; function compareNumbers(a, b){ return a - b; } exports.compareNumbers=compareNumbers; function isInt(n){ return n % 1===0; } exports.isInt=isInt; function proxy(obj, methodName){ var method=obj[methodName]; return function (){ return method.apply(obj, arguments); };} exports.proxy=proxy; function debounce(func, wait, immediate){ if(immediate===void 0){ immediate=false; } var timeout; var args; var context; var timestamp; var result; var later=function (){ var last=+new Date() - timestamp; if(last < wait){ timeout=setTimeout(later, wait - last); }else{ timeout=null; if(!immediate){ result=func.apply(context, args); context=args=null; }} }; return function (){ context=this; args=arguments; timestamp=+new Date(); var callNow=immediate&&!timeout; if(!timeout){ timeout=setTimeout(later, wait); } if(callNow){ result=func.apply(context, args); context=args=null; } return result; };} exports.debounce=debounce; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var moment=__webpack_require__(0); var moment_ext_1=__webpack_require__(10); var UnzonedRange= (function (){ function UnzonedRange(startInput, endInput){ this.isStart=true; this.isEnd=true; if(moment.isMoment(startInput)){ startInput=startInput.clone().stripZone(); } if(moment.isMoment(endInput)){ endInput=endInput.clone().stripZone(); } if(startInput){ this.startMs=startInput.valueOf(); } if(endInput){ this.endMs=endInput.valueOf(); }} UnzonedRange.invertRanges=function (ranges, constraintRange){ var invertedRanges=[]; var startMs=constraintRange.startMs; var i; var dateRange; ranges.sort(compareUnzonedRanges); for (i=0; i < ranges.length; i++){ dateRange=ranges[i]; if(dateRange.startMs > startMs){ invertedRanges.push(new UnzonedRange(startMs, dateRange.startMs)); } if(dateRange.endMs > startMs){ startMs=dateRange.endMs; }} if(startMs < constraintRange.endMs){ invertedRanges.push(new UnzonedRange(startMs, constraintRange.endMs)); } return invertedRanges; }; UnzonedRange.prototype.intersect=function (otherRange){ var startMs=this.startMs; var endMs=this.endMs; var newRange=null; if(otherRange.startMs!=null){ if(startMs==null){ startMs=otherRange.startMs; }else{ startMs=Math.max(startMs, otherRange.startMs); }} if(otherRange.endMs!=null){ if(endMs==null){ endMs=otherRange.endMs; }else{ endMs=Math.min(endMs, otherRange.endMs); }} if(startMs==null||endMs==null||startMs < endMs){ newRange=new UnzonedRange(startMs, endMs); newRange.isStart=this.isStart&&startMs===this.startMs; newRange.isEnd=this.isEnd&&endMs===this.endMs; } return newRange; }; UnzonedRange.prototype.intersectsWith=function (otherRange){ return (this.endMs==null||otherRange.startMs==null||this.endMs > otherRange.startMs) && (this.startMs==null||otherRange.endMs==null||this.startMs < otherRange.endMs); }; UnzonedRange.prototype.containsRange=function (innerRange){ return (this.startMs==null||(innerRange.startMs!=null&&innerRange.startMs >=this.startMs)) && (this.endMs==null||(innerRange.endMs!=null&&innerRange.endMs <=this.endMs)); }; UnzonedRange.prototype.containsDate=function (date){ var ms=date.valueOf(); return (this.startMs==null||ms >=this.startMs) && (this.endMs==null||ms < this.endMs); }; UnzonedRange.prototype.constrainDate=function (date){ var ms=date.valueOf(); if(this.startMs!=null&&ms < this.startMs){ ms=this.startMs; } if(this.endMs!=null&&ms >=this.endMs){ ms=this.endMs - 1; } return ms; }; UnzonedRange.prototype.equals=function (otherRange){ return this.startMs===otherRange.startMs&&this.endMs===otherRange.endMs; }; UnzonedRange.prototype.clone=function (){ var range=new UnzonedRange(this.startMs, this.endMs); range.isStart=this.isStart; range.isEnd=this.isEnd; return range; }; UnzonedRange.prototype.getStart=function (){ if(this.startMs!=null){ return moment_ext_1.default.utc(this.startMs).stripZone(); } return null; }; UnzonedRange.prototype.getEnd=function (){ if(this.endMs!=null){ return moment_ext_1.default.utc(this.endMs).stripZone(); } return null; }; UnzonedRange.prototype.as=function (unit){ return moment.utc(this.endMs).diff(moment.utc(this.startMs), unit, true); }; return UnzonedRange; }()); exports.default=UnzonedRange; function compareUnzonedRanges(range1, range2){ return range1.startMs - range2.startMs; } }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var ParsableModelMixin_1=__webpack_require__(208); var Class_1=__webpack_require__(33); var EventDefParser_1=__webpack_require__(49); var EventSource= (function (_super){ tslib_1.__extends(EventSource, _super); function EventSource(calendar){ var _this=_super.call(this)||this; _this.calendar=calendar; _this.className=[]; _this.uid=String(EventSource.uuid++); return _this; } EventSource.parse=function (rawInput, calendar){ var source=new this(calendar); if(typeof rawInput==='object'){ if(source.applyProps(rawInput)){ return source; }} return false; }; EventSource.normalizeId=function (id){ if(id){ return String(id); } return null; }; EventSource.prototype.fetch=function (start, end, timezone){ }; EventSource.prototype.removeEventDefsById=function (eventDefId){ }; EventSource.prototype.removeAllEventDefs=function (){ }; EventSource.prototype.getPrimitive=function (otherSource){ }; EventSource.prototype.parseEventDefs=function (rawEventDefs){ var i; var eventDef; var eventDefs=[]; for (i=0; i < rawEventDefs.length; i++){ eventDef=this.parseEventDef(rawEventDefs[i]); if(eventDef){ eventDefs.push(eventDef); }} return eventDefs; }; EventSource.prototype.parseEventDef=function (rawInput){ var calendarTransform=this.calendar.opt('eventDataTransform'); var sourceTransform=this.eventDataTransform; if(calendarTransform){ rawInput=calendarTransform(rawInput, this.calendar); } if(sourceTransform){ rawInput=sourceTransform(rawInput, this.calendar); } return EventDefParser_1.default.parse(rawInput, this); }; EventSource.prototype.applyManualStandardProps=function (rawProps){ if(rawProps.id!=null){ this.id=EventSource.normalizeId(rawProps.id); } if($.isArray(rawProps.className)){ this.className=rawProps.className; } else if(typeof rawProps.className==='string'){ this.className=rawProps.className.split(/\s+/); } return true; }; EventSource.uuid=0; EventSource.defineStandardProps=ParsableModelMixin_1.default.defineStandardProps; EventSource.copyVerbatimStandardProps=ParsableModelMixin_1.default.copyVerbatimStandardProps; return EventSource; }(Class_1.default)); exports.default=EventSource; ParsableModelMixin_1.default.mixInto(EventSource); EventSource.defineStandardProps({ id: false, className: false, color: true, backgroundColor: true, borderColor: true, textColor: true, editable: true, startEditable: true, durationEditable: true, rendering: true, overlap: true, constraint: true, allDayDefault: true, eventDataTransform: true }); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var Mixin_1=__webpack_require__(14); var guid=0; var ListenerMixin= (function (_super){ tslib_1.__extends(ListenerMixin, _super); function ListenerMixin(){ return _super!==null&&_super.apply(this, arguments)||this; } ListenerMixin.prototype.listenTo=function (other, arg, callback){ if(typeof arg==='object'){ for (var eventName in arg){ if(arg.hasOwnProperty(eventName)){ this.listenTo(other, eventName, arg[eventName]); }} } else if(typeof arg==='string'){ other.on(arg + '.' + this.getListenerNamespace(), $.proxy(callback, this) ); }}; ListenerMixin.prototype.stopListeningTo=function (other, eventName){ other.off((eventName||'') + '.' + this.getListenerNamespace()); }; ListenerMixin.prototype.getListenerNamespace=function (){ if(this.listenerId==null){ this.listenerId=guid++; } return '_listener' + this.listenerId; }; return ListenerMixin; }(Mixin_1.default)); exports.default=ListenerMixin; }), , , (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var moment=__webpack_require__(0); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var ambigDateOfMonthRegex=/^\s*\d{4}-\d\d$/; var ambigTimeOrZoneRegex=/^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T|)(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/; var newMomentProto=moment.fn; exports.newMomentProto=newMomentProto; var oldMomentProto=$.extend({}, newMomentProto); exports.oldMomentProto=oldMomentProto; var momentProperties=moment.momentProperties; momentProperties.push('_fullCalendar'); momentProperties.push('_ambigTime'); momentProperties.push('_ambigZone'); function oldMomentFormat(mom, formatStr){ return oldMomentProto.format.call(mom, formatStr); } exports.oldMomentFormat=oldMomentFormat; var momentExt=function (){ return makeMoment(arguments); }; exports.default=momentExt; momentExt.utc=function (){ var mom=makeMoment(arguments, true); if(mom.hasTime()){ mom.utc(); } return mom; }; momentExt.parseZone=function (){ return makeMoment(arguments, true, true); }; function makeMoment(args, parseAsUTC, parseZone){ if(parseAsUTC===void 0){ parseAsUTC=false; } if(parseZone===void 0){ parseZone=false; } var input=args[0]; var isSingleString=args.length===1&&typeof input==='string'; var isAmbigTime; var isAmbigZone; var ambigMatch; var mom; if(moment.isMoment(input)||util_1.isNativeDate(input)||input===undefined){ mom=moment.apply(null, args); }else{ isAmbigTime=false; isAmbigZone=false; if(isSingleString){ if(ambigDateOfMonthRegex.test(input)){ input +='-01'; args=[input]; isAmbigTime=true; isAmbigZone=true; } else if((ambigMatch=ambigTimeOrZoneRegex.exec(input))){ isAmbigTime = !ambigMatch[5]; isAmbigZone=true; }} else if($.isArray(input)){ isAmbigZone=true; } if(parseAsUTC||isAmbigTime){ mom=moment.utc.apply(moment, args); }else{ mom=moment.apply(null, args); } if(isAmbigTime){ mom._ambigTime=true; mom._ambigZone=true; } else if(parseZone){ if(isAmbigZone){ mom._ambigZone=true; } else if(isSingleString){ mom.utcOffset(input); }} } mom._fullCalendar=true; return mom; } newMomentProto.week=newMomentProto.weeks=function (input){ var weekCalc=this._locale._fullCalendar_weekCalc; if(input==null&&typeof weekCalc==='function'){ return weekCalc(this); } else if(weekCalc==='ISO'){ return oldMomentProto.isoWeek.apply(this, arguments); } return oldMomentProto.week.apply(this, arguments); }; newMomentProto.time=function (time){ if(!this._fullCalendar){ return oldMomentProto.time.apply(this, arguments); } if(time==null){ return moment.duration({ hours: this.hours(), minutes: this.minutes(), seconds: this.seconds(), milliseconds: this.milliseconds() }); }else{ this._ambigTime=false; if(!moment.isDuration(time)&&!moment.isMoment(time)){ time=moment.duration(time); } var dayHours=0; if(moment.isDuration(time)){ dayHours=Math.floor(time.asDays()) * 24; } return this.hours(dayHours + time.hours()) .minutes(time.minutes()) .seconds(time.seconds()) .milliseconds(time.milliseconds()); }}; newMomentProto.stripTime=function (){ if(!this._ambigTime){ this.utc(true); this.set({ hours: 0, minutes: 0, seconds: 0, ms: 0 }); this._ambigTime=true; this._ambigZone=true; } return this; }; newMomentProto.hasTime=function (){ return !this._ambigTime; }; newMomentProto.stripZone=function (){ var wasAmbigTime; if(!this._ambigZone){ wasAmbigTime=this._ambigTime; this.utc(true); this._ambigTime=wasAmbigTime||false; this._ambigZone=true; } return this; }; newMomentProto.hasZone=function (){ return !this._ambigZone; }; newMomentProto.local=function (keepLocalTime){ oldMomentProto.local.call(this, this._ambigZone||keepLocalTime); this._ambigTime=false; this._ambigZone=false; return this; }; newMomentProto.utc=function (keepLocalTime){ oldMomentProto.utc.call(this, keepLocalTime); this._ambigTime=false; this._ambigZone=false; return this; }; newMomentProto.utcOffset=function (tzo){ if(tzo!=null){ this._ambigTime=false; this._ambigZone=false; } return oldMomentProto.utcOffset.apply(this, arguments); }; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var Mixin_1=__webpack_require__(14); var EmitterMixin= (function (_super){ tslib_1.__extends(EmitterMixin, _super); function EmitterMixin(){ return _super!==null&&_super.apply(this, arguments)||this; } EmitterMixin.prototype.on=function (types, handler){ $(this).on(types, this._prepareIntercept(handler)); return this; }; EmitterMixin.prototype.one=function (types, handler){ $(this).one(types, this._prepareIntercept(handler)); return this; }; EmitterMixin.prototype._prepareIntercept=function (handler){ var intercept=function (ev, extra){ return handler.apply(extra.context||this, extra.args||[]); }; if(!handler.guid){ handler.guid=$.guid++; } intercept.guid=handler.guid; return intercept; }; EmitterMixin.prototype.off=function (types, handler){ $(this).off(types, handler); return this; }; EmitterMixin.prototype.trigger=function (types){ var args=[]; for (var _i=1; _i < arguments.length; _i++){ args[_i - 1]=arguments[_i]; } $(this).triggerHandler(types, { args: args }); return this; }; EmitterMixin.prototype.triggerWith=function (types, context, args){ $(this).triggerHandler(types, { context: context, args: args }); return this; }; EmitterMixin.prototype.hasHandlers=function (type){ var hash=$._data(this, 'events'); return hash&&hash[type]&&hash[type].length > 0; }; return EmitterMixin; }(Mixin_1.default)); exports.default=EmitterMixin; }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); var ComponentFootprint= (function (){ function ComponentFootprint(unzonedRange, isAllDay){ this.isAllDay=false; this.unzonedRange=unzonedRange; this.isAllDay=isAllDay; } ComponentFootprint.prototype.toLegacy=function (calendar){ return { start: calendar.msToMoment(this.unzonedRange.startMs, this.isAllDay), end: calendar.msToMoment(this.unzonedRange.endMs, this.isAllDay) };}; return ComponentFootprint; }()); exports.default=ComponentFootprint; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var EventDef_1=__webpack_require__(34); var EventInstance_1=__webpack_require__(209); var EventDateProfile_1=__webpack_require__(17); var SingleEventDef= (function (_super){ tslib_1.__extends(SingleEventDef, _super); function SingleEventDef(){ return _super!==null&&_super.apply(this, arguments)||this; } SingleEventDef.prototype.buildInstances=function (){ return [this.buildInstance()]; }; SingleEventDef.prototype.buildInstance=function (){ return new EventInstance_1.default(this, this.dateProfile); }; SingleEventDef.prototype.isAllDay=function (){ return this.dateProfile.isAllDay(); }; SingleEventDef.prototype.clone=function (){ var def=_super.prototype.clone.call(this); def.dateProfile=this.dateProfile; return def; }; SingleEventDef.prototype.rezone=function (){ var calendar=this.source.calendar; var dateProfile=this.dateProfile; this.dateProfile=new EventDateProfile_1.default(calendar.moment(dateProfile.start), dateProfile.end ? calendar.moment(dateProfile.end):null, calendar); }; SingleEventDef.prototype.applyManualStandardProps=function (rawProps){ var superSuccess=_super.prototype.applyManualStandardProps.call(this, rawProps); var dateProfile=EventDateProfile_1.default.parse(rawProps, this.source); if(dateProfile){ this.dateProfile=dateProfile; if(rawProps.date!=null){ this.miscProps.date=rawProps.date; } return superSuccess; }else{ return false; }}; return SingleEventDef; }(EventDef_1.default)); exports.default=SingleEventDef; SingleEventDef.defineStandardProps({ start: false, date: false, end: false, allDay: false }); }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); var Mixin= (function (){ function Mixin(){ } Mixin.mixInto=function (destClass){ var _this=this; Object.getOwnPropertyNames(this.prototype).forEach(function (name){ if(!destClass.prototype[name]){ destClass.prototype[name]=_this.prototype[name]; }}); }; Mixin.mixOver=function (destClass){ var _this=this; Object.getOwnPropertyNames(this.prototype).forEach(function (name){ destClass.prototype[name]=_this.prototype[name]; }); }; return Mixin; }()); exports.default=Mixin; }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); var Interaction= (function (){ function Interaction(component){ this.view=component._getView(); this.component=component; } Interaction.prototype.opt=function (name){ return this.view.opt(name); }; Interaction.prototype.end=function (){ }; return Interaction; }()); exports.default=Interaction; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); exports.version='3.9.0'; exports.internalApiVersion=12; var util_1=__webpack_require__(4); exports.applyAll=util_1.applyAll; exports.debounce=util_1.debounce; exports.isInt=util_1.isInt; exports.htmlEscape=util_1.htmlEscape; exports.cssToStr=util_1.cssToStr; exports.proxy=util_1.proxy; exports.capitaliseFirstLetter=util_1.capitaliseFirstLetter; exports.getOuterRect=util_1.getOuterRect; exports.getClientRect=util_1.getClientRect; exports.getContentRect=util_1.getContentRect; exports.getScrollbarWidths=util_1.getScrollbarWidths; exports.preventDefault=util_1.preventDefault; exports.parseFieldSpecs=util_1.parseFieldSpecs; exports.compareByFieldSpecs=util_1.compareByFieldSpecs; exports.compareByFieldSpec=util_1.compareByFieldSpec; exports.flexibleCompare=util_1.flexibleCompare; exports.computeGreatestUnit=util_1.computeGreatestUnit; exports.divideRangeByDuration=util_1.divideRangeByDuration; exports.divideDurationByDuration=util_1.divideDurationByDuration; exports.multiplyDuration=util_1.multiplyDuration; exports.durationHasTime=util_1.durationHasTime; exports.log=util_1.log; exports.warn=util_1.warn; exports.removeExact=util_1.removeExact; exports.intersectRects=util_1.intersectRects; var date_formatting_1=__webpack_require__(47); exports.formatDate=date_formatting_1.formatDate; exports.formatRange=date_formatting_1.formatRange; exports.queryMostGranularFormatUnit=date_formatting_1.queryMostGranularFormatUnit; var locale_1=__webpack_require__(31); exports.datepickerLocale=locale_1.datepickerLocale; exports.locale=locale_1.locale; var moment_ext_1=__webpack_require__(10); exports.moment=moment_ext_1.default; var EmitterMixin_1=__webpack_require__(11); exports.EmitterMixin=EmitterMixin_1.default; var ListenerMixin_1=__webpack_require__(7); exports.ListenerMixin=ListenerMixin_1.default; var Model_1=__webpack_require__(48); exports.Model=Model_1.default; var Constraints_1=__webpack_require__(207); exports.Constraints=Constraints_1.default; var UnzonedRange_1=__webpack_require__(5); exports.UnzonedRange=UnzonedRange_1.default; var ComponentFootprint_1=__webpack_require__(12); exports.ComponentFootprint=ComponentFootprint_1.default; var BusinessHourGenerator_1=__webpack_require__(212); exports.BusinessHourGenerator=BusinessHourGenerator_1.default; var EventDef_1=__webpack_require__(34); exports.EventDef=EventDef_1.default; var EventDefMutation_1=__webpack_require__(37); exports.EventDefMutation=EventDefMutation_1.default; var EventSourceParser_1=__webpack_require__(38); exports.EventSourceParser=EventSourceParser_1.default; var EventSource_1=__webpack_require__(6); exports.EventSource=EventSource_1.default; var ThemeRegistry_1=__webpack_require__(51); exports.defineThemeSystem=ThemeRegistry_1.defineThemeSystem; var EventInstanceGroup_1=__webpack_require__(18); exports.EventInstanceGroup=EventInstanceGroup_1.default; var ArrayEventSource_1=__webpack_require__(52); exports.ArrayEventSource=ArrayEventSource_1.default; var FuncEventSource_1=__webpack_require__(215); exports.FuncEventSource=FuncEventSource_1.default; var JsonFeedEventSource_1=__webpack_require__(216); exports.JsonFeedEventSource=JsonFeedEventSource_1.default; var EventFootprint_1=__webpack_require__(36); exports.EventFootprint=EventFootprint_1.default; var Class_1=__webpack_require__(33); exports.Class=Class_1.default; var Mixin_1=__webpack_require__(14); exports.Mixin=Mixin_1.default; var CoordCache_1=__webpack_require__(53); exports.CoordCache=CoordCache_1.default; var DragListener_1=__webpack_require__(54); exports.DragListener=DragListener_1.default; var Promise_1=__webpack_require__(20); exports.Promise=Promise_1.default; var TaskQueue_1=__webpack_require__(217); exports.TaskQueue=TaskQueue_1.default; var RenderQueue_1=__webpack_require__(218); exports.RenderQueue=RenderQueue_1.default; var Scroller_1=__webpack_require__(39); exports.Scroller=Scroller_1.default; var Theme_1=__webpack_require__(19); exports.Theme=Theme_1.default; var DateComponent_1=__webpack_require__(219); exports.DateComponent=DateComponent_1.default; var InteractiveDateComponent_1=__webpack_require__(40); exports.InteractiveDateComponent=InteractiveDateComponent_1.default; var Calendar_1=__webpack_require__(220); exports.Calendar=Calendar_1.default; var View_1=__webpack_require__(41); exports.View=View_1.default; var ViewRegistry_1=__webpack_require__(22); exports.defineView=ViewRegistry_1.defineView; exports.getViewConfig=ViewRegistry_1.getViewConfig; var DayTableMixin_1=__webpack_require__(55); exports.DayTableMixin=DayTableMixin_1.default; var BusinessHourRenderer_1=__webpack_require__(56); exports.BusinessHourRenderer=BusinessHourRenderer_1.default; var EventRenderer_1=__webpack_require__(42); exports.EventRenderer=EventRenderer_1.default; var FillRenderer_1=__webpack_require__(57); exports.FillRenderer=FillRenderer_1.default; var HelperRenderer_1=__webpack_require__(58); exports.HelperRenderer=HelperRenderer_1.default; var ExternalDropping_1=__webpack_require__(222); exports.ExternalDropping=ExternalDropping_1.default; var EventResizing_1=__webpack_require__(223); exports.EventResizing=EventResizing_1.default; var EventPointing_1=__webpack_require__(59); exports.EventPointing=EventPointing_1.default; var EventDragging_1=__webpack_require__(224); exports.EventDragging=EventDragging_1.default; var DateSelecting_1=__webpack_require__(225); exports.DateSelecting=DateSelecting_1.default; var StandardInteractionsMixin_1=__webpack_require__(60); exports.StandardInteractionsMixin=StandardInteractionsMixin_1.default; var AgendaView_1=__webpack_require__(226); exports.AgendaView=AgendaView_1.default; var TimeGrid_1=__webpack_require__(227); exports.TimeGrid=TimeGrid_1.default; var DayGrid_1=__webpack_require__(61); exports.DayGrid=DayGrid_1.default; var BasicView_1=__webpack_require__(62); exports.BasicView=BasicView_1.default; var MonthView_1=__webpack_require__(229); exports.MonthView=MonthView_1.default; var ListView_1=__webpack_require__(230); exports.ListView=ListView_1.default; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var UnzonedRange_1=__webpack_require__(5); var EventDateProfile= (function (){ function EventDateProfile(start, end, calendar){ this.start=start; this.end=end||null; this.unzonedRange=this.buildUnzonedRange(calendar); } EventDateProfile.parse=function (rawProps, source){ var startInput=rawProps.start||rawProps.date; var endInput=rawProps.end; if(!startInput){ return false; } var calendar=source.calendar; var start=calendar.moment(startInput); var end=endInput ? calendar.moment(endInput):null; var forcedAllDay=rawProps.allDay; var forceEventDuration=calendar.opt('forceEventDuration'); if(!start.isValid()){ return false; } if(end&&(!end.isValid()||!end.isAfter(start))){ end=null; } if(forcedAllDay==null){ forcedAllDay=source.allDayDefault; if(forcedAllDay==null){ forcedAllDay=calendar.opt('allDayDefault'); }} if(forcedAllDay===true){ start.stripTime(); if(end){ end.stripTime(); }} else if(forcedAllDay===false){ if(!start.hasTime()){ start.time(0); } if(end&&!end.hasTime()){ end.time(0); }} if(!end&&forceEventDuration){ end=calendar.getDefaultEventEnd(!start.hasTime(), start); } return new EventDateProfile(start, end, calendar); }; EventDateProfile.isStandardProp=function (propName){ return propName==='start'||propName==='date'||propName==='end'||propName==='allDay'; }; EventDateProfile.prototype.isAllDay=function (){ return !(this.start.hasTime()||(this.end&&this.end.hasTime())); }; EventDateProfile.prototype.buildUnzonedRange=function (calendar){ var startMs=this.start.clone().stripZone().valueOf(); var endMs=this.getEnd(calendar).stripZone().valueOf(); return new UnzonedRange_1.default(startMs, endMs); }; EventDateProfile.prototype.getEnd=function (calendar){ return this.end ? this.end.clone() : calendar.getDefaultEventEnd(this.isAllDay(), this.start); }; return EventDateProfile; }()); exports.default=EventDateProfile; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var UnzonedRange_1=__webpack_require__(5); var util_1=__webpack_require__(35); var EventRange_1=__webpack_require__(211); var EventInstanceGroup= (function (){ function EventInstanceGroup(eventInstances){ this.eventInstances=eventInstances||[]; } EventInstanceGroup.prototype.getAllEventRanges=function (constraintRange){ if(constraintRange){ return this.sliceNormalRenderRanges(constraintRange); }else{ return this.eventInstances.map(util_1.eventInstanceToEventRange); }}; EventInstanceGroup.prototype.sliceRenderRanges=function (constraintRange){ if(this.isInverse()){ return this.sliceInverseRenderRanges(constraintRange); }else{ return this.sliceNormalRenderRanges(constraintRange); }}; EventInstanceGroup.prototype.sliceNormalRenderRanges=function (constraintRange){ var eventInstances=this.eventInstances; var i; var eventInstance; var slicedRange; var slicedEventRanges=[]; for (i=0; i < eventInstances.length; i++){ eventInstance=eventInstances[i]; slicedRange=eventInstance.dateProfile.unzonedRange.intersect(constraintRange); if(slicedRange){ slicedEventRanges.push(new EventRange_1.default(slicedRange, eventInstance.def, eventInstance)); }} return slicedEventRanges; }; EventInstanceGroup.prototype.sliceInverseRenderRanges=function (constraintRange){ var unzonedRanges=this.eventInstances.map(util_1.eventInstanceToUnzonedRange); var ownerDef=this.getEventDef(); unzonedRanges=UnzonedRange_1.default.invertRanges(unzonedRanges, constraintRange); return unzonedRanges.map(function (unzonedRange){ return new EventRange_1.default(unzonedRange, ownerDef); }); }; EventInstanceGroup.prototype.isInverse=function (){ return this.getEventDef().hasInverseRendering(); }; EventInstanceGroup.prototype.getEventDef=function (){ return this.explicitEventDef||this.eventInstances[0].def; }; return EventInstanceGroup; }()); exports.default=EventInstanceGroup; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var Theme= (function (){ function Theme(optionsManager){ this.optionsManager=optionsManager; this.processIconOverride(); } Theme.prototype.processIconOverride=function (){ if(this.iconOverrideOption){ this.setIconOverride(this.optionsManager.get(this.iconOverrideOption)); }}; Theme.prototype.setIconOverride=function (iconOverrideHash){ var iconClassesCopy; var buttonName; if($.isPlainObject(iconOverrideHash)){ iconClassesCopy=$.extend({}, this.iconClasses); for (buttonName in iconOverrideHash){ iconClassesCopy[buttonName]=this.applyIconOverridePrefix(iconOverrideHash[buttonName]); } this.iconClasses=iconClassesCopy; } else if(iconOverrideHash===false){ this.iconClasses={};}}; Theme.prototype.applyIconOverridePrefix=function (className){ var prefix=this.iconOverridePrefix; if(prefix&&className.indexOf(prefix)!==0){ className=prefix + className; } return className; }; Theme.prototype.getClass=function (key){ return this.classes[key]||''; }; Theme.prototype.getIconClass=function (buttonName){ var className=this.iconClasses[buttonName]; if(className){ return this.baseIconClass + ' ' + className; } return ''; }; Theme.prototype.getCustomButtonIconClass=function (customButtonProps){ var className; if(this.iconOverrideCustomButtonOption){ className=customButtonProps[this.iconOverrideCustomButtonOption]; if(className){ return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); }} return ''; }; return Theme; }()); exports.default=Theme; Theme.prototype.classes={}; Theme.prototype.iconClasses={}; Theme.prototype.baseIconClass=''; Theme.prototype.iconOverridePrefix=''; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var PromiseStub={ construct: function (executor){ var deferred=$.Deferred(); var promise=deferred.promise(); if(typeof executor==='function'){ executor(function (val){ deferred.resolve(val); attachImmediatelyResolvingThen(promise, val); }, function (){ deferred.reject(); attachImmediatelyRejectingThen(promise); }); } return promise; }, resolve: function (val){ var deferred=$.Deferred().resolve(val); var promise=deferred.promise(); attachImmediatelyResolvingThen(promise, val); return promise; }, reject: function (){ var deferred=$.Deferred().reject(); var promise=deferred.promise(); attachImmediatelyRejectingThen(promise); return promise; }}; exports.default=PromiseStub; function attachImmediatelyResolvingThen(promise, val){ promise.then=function (onResolve){ if(typeof onResolve==='function'){ return PromiseStub.resolve(onResolve(val)); } return promise; };} function attachImmediatelyRejectingThen(promise){ promise.then=function (onResolve, onReject){ if(typeof onReject==='function'){ onReject(); } return promise; };} }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var exportHooks=__webpack_require__(16); var EmitterMixin_1=__webpack_require__(11); var ListenerMixin_1=__webpack_require__(7); exportHooks.touchMouseIgnoreWait=500; var globalEmitter=null; var neededCount=0; var GlobalEmitter= (function (){ function GlobalEmitter(){ this.isTouching=false; this.mouseIgnoreDepth=0; } GlobalEmitter.get=function (){ if(!globalEmitter){ globalEmitter=new GlobalEmitter(); globalEmitter.bind(); } return globalEmitter; }; GlobalEmitter.needed=function (){ GlobalEmitter.get(); neededCount++; }; GlobalEmitter.unneeded=function (){ neededCount--; if(!neededCount){ globalEmitter.unbind(); globalEmitter=null; }}; GlobalEmitter.prototype.bind=function (){ var _this=this; this.listenTo($(document), { touchstart: this.handleTouchStart, touchcancel: this.handleTouchCancel, touchend: this.handleTouchEnd, mousedown: this.handleMouseDown, mousemove: this.handleMouseMove, mouseup: this.handleMouseUp, click: this.handleClick, selectstart: this.handleSelectStart, contextmenu: this.handleContextMenu }); window.addEventListener('touchmove', this.handleTouchMoveProxy=function (ev){ _this.handleTouchMove($.Event(ev)); }, { passive: false } ); window.addEventListener('scroll', this.handleScrollProxy=function (ev){ _this.handleScroll($.Event(ev)); }, true ); }; GlobalEmitter.prototype.unbind=function (){ this.stopListeningTo($(document)); window.removeEventListener('touchmove', this.handleTouchMoveProxy); window.removeEventListener('scroll', this.handleScrollProxy, true ); }; GlobalEmitter.prototype.handleTouchStart=function (ev){ this.stopTouch(ev, true); this.isTouching=true; this.trigger('touchstart', ev); }; GlobalEmitter.prototype.handleTouchMove=function (ev){ if(this.isTouching){ this.trigger('touchmove', ev); }}; GlobalEmitter.prototype.handleTouchCancel=function (ev){ if(this.isTouching){ this.trigger('touchcancel', ev); this.stopTouch(ev); }}; GlobalEmitter.prototype.handleTouchEnd=function (ev){ this.stopTouch(ev); }; GlobalEmitter.prototype.handleMouseDown=function (ev){ if(!this.shouldIgnoreMouse()){ this.trigger('mousedown', ev); }}; GlobalEmitter.prototype.handleMouseMove=function (ev){ if(!this.shouldIgnoreMouse()){ this.trigger('mousemove', ev); }}; GlobalEmitter.prototype.handleMouseUp=function (ev){ if(!this.shouldIgnoreMouse()){ this.trigger('mouseup', ev); }}; GlobalEmitter.prototype.handleClick=function (ev){ if(!this.shouldIgnoreMouse()){ this.trigger('click', ev); }}; GlobalEmitter.prototype.handleSelectStart=function (ev){ this.trigger('selectstart', ev); }; GlobalEmitter.prototype.handleContextMenu=function (ev){ this.trigger('contextmenu', ev); }; GlobalEmitter.prototype.handleScroll=function (ev){ this.trigger('scroll', ev); }; GlobalEmitter.prototype.stopTouch=function (ev, skipMouseIgnore){ if(skipMouseIgnore===void 0){ skipMouseIgnore=false; } if(this.isTouching){ this.isTouching=false; this.trigger('touchend', ev); if(!skipMouseIgnore){ this.startTouchMouseIgnore(); }} }; GlobalEmitter.prototype.startTouchMouseIgnore=function (){ var _this=this; var wait=exportHooks.touchMouseIgnoreWait; if(wait){ this.mouseIgnoreDepth++; setTimeout(function (){ _this.mouseIgnoreDepth--; }, wait); }}; GlobalEmitter.prototype.shouldIgnoreMouse=function (){ return this.isTouching||Boolean(this.mouseIgnoreDepth); }; return GlobalEmitter; }()); exports.default=GlobalEmitter; ListenerMixin_1.default.mixInto(GlobalEmitter); EmitterMixin_1.default.mixInto(GlobalEmitter); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var exportHooks=__webpack_require__(16); exports.viewHash={}; exportHooks.views=exports.viewHash; function defineView(viewName, viewConfig){ exports.viewHash[viewName]=viewConfig; } exports.defineView=defineView; function getViewConfig(viewName){ return exports.viewHash[viewName]; } exports.getViewConfig=getViewConfig; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var util_1=__webpack_require__(4); var DragListener_1=__webpack_require__(54); var HitDragListener= (function (_super){ tslib_1.__extends(HitDragListener, _super); function HitDragListener(component, options){ var _this=_super.call(this, options)||this; _this.component=component; return _this; } HitDragListener.prototype.handleInteractionStart=function (ev){ var subjectEl=this.subjectEl; var subjectRect; var origPoint; var point; this.component.hitsNeeded(); this.computeScrollBounds(); if(ev){ origPoint={ left: util_1.getEvX(ev), top: util_1.getEvY(ev) }; point=origPoint; if(subjectEl){ subjectRect=util_1.getOuterRect(subjectEl); point=util_1.constrainPoint(point, subjectRect); } this.origHit=this.queryHit(point.left, point.top); if(subjectEl&&this.options.subjectCenter){ if(this.origHit){ subjectRect=util_1.intersectRects(this.origHit, subjectRect) || subjectRect; } point=util_1.getRectCenter(subjectRect); } this.coordAdjust=util_1.diffPoints(point, origPoint); }else{ this.origHit=null; this.coordAdjust=null; } _super.prototype.handleInteractionStart.call(this, ev); }; HitDragListener.prototype.handleDragStart=function (ev){ var hit; _super.prototype.handleDragStart.call(this, ev); hit=this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev)); if(hit){ this.handleHitOver(hit); }}; HitDragListener.prototype.handleDrag=function (dx, dy, ev){ var hit; _super.prototype.handleDrag.call(this, dx, dy, ev); hit=this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev)); if(!isHitsEqual(hit, this.hit)){ if(this.hit){ this.handleHitOut(); } if(hit){ this.handleHitOver(hit); }} }; HitDragListener.prototype.handleDragEnd=function (ev){ this.handleHitDone(); _super.prototype.handleDragEnd.call(this, ev); }; HitDragListener.prototype.handleHitOver=function (hit){ var isOrig=isHitsEqual(hit, this.origHit); this.hit=hit; this.trigger('hitOver', this.hit, isOrig, this.origHit); }; HitDragListener.prototype.handleHitOut=function (){ if(this.hit){ this.trigger('hitOut', this.hit); this.handleHitDone(); this.hit=null; }}; HitDragListener.prototype.handleHitDone=function (){ if(this.hit){ this.trigger('hitDone', this.hit); }}; HitDragListener.prototype.handleInteractionEnd=function (ev, isCancelled){ _super.prototype.handleInteractionEnd.call(this, ev, isCancelled); this.origHit=null; this.hit=null; this.component.hitsNotNeeded(); }; HitDragListener.prototype.handleScrollEnd=function (){ _super.prototype.handleScrollEnd.call(this); if(this.isDragging){ this.component.releaseHits(); this.component.prepareHits(); }}; HitDragListener.prototype.queryHit=function (left, top){ if(this.coordAdjust){ left +=this.coordAdjust.left; top +=this.coordAdjust.top; } return this.component.queryHit(left, top); }; return HitDragListener; }(DragListener_1.default)); exports.default=HitDragListener; function isHitsEqual(hit0, hit1){ if(!hit0&&!hit1){ return true; } if(hit0&&hit1){ return hit0.component===hit1.component && isHitPropsWithin(hit0, hit1) && isHitPropsWithin(hit1, hit0); } return false; } function isHitPropsWithin(subHit, superHit){ for (var propName in subHit){ if(!/^(component|left|right|top|bottom)$/.test(propName)){ if(subHit[propName]!==superHit[propName]){ return false; }} } return true; } }), , , , , , , , (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var moment=__webpack_require__(0); var exportHooks=__webpack_require__(16); var options_1=__webpack_require__(32); var util_1=__webpack_require__(4); exports.localeOptionHash={}; exportHooks.locales=exports.localeOptionHash; var dpComputableOptions={ buttonText: function (dpOptions){ return { prev: util_1.stripHtmlEntities(dpOptions.prevText), next: util_1.stripHtmlEntities(dpOptions.nextText), today: util_1.stripHtmlEntities(dpOptions.currentText) };}, monthYearFormat: function (dpOptions){ return dpOptions.showMonthAfterYear ? 'YYYY[' + dpOptions.yearSuffix + '] MMMM' : 'MMMM YYYY[' + dpOptions.yearSuffix + ']'; }}; var momComputableOptions={ dayOfMonthFormat: function (momOptions, fcOptions){ var format=momOptions.longDateFormat('l'); format=format.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g, ''); if(fcOptions.isRTL){ format +=' ddd'; }else{ format='ddd ' + format; } return format; }, mediumTimeFormat: function (momOptions){ return momOptions.longDateFormat('LT') .replace(/\s*a$/i, 'a'); }, smallTimeFormat: function (momOptions){ return momOptions.longDateFormat('LT') .replace(':mm', '(:mm)') .replace(/(\Wmm)$/, '($1)') .replace(/\s*a$/i, 'a'); }, extraSmallTimeFormat: function (momOptions){ return momOptions.longDateFormat('LT') .replace(':mm', '(:mm)') .replace(/(\Wmm)$/, '($1)') .replace(/\s*a$/i, 't'); }, hourFormat: function (momOptions){ return momOptions.longDateFormat('LT') .replace(':mm', '') .replace(/(\Wmm)$/, '') .replace(/\s*a$/i, 'a'); }, noMeridiemTimeFormat: function (momOptions){ return momOptions.longDateFormat('LT') .replace(/\s*a$/i, ''); }}; var instanceComputableOptions={ smallDayDateFormat: function (options){ return options.isRTL ? 'D dd' : 'dd D'; }, weekFormat: function (options){ return options.isRTL ? 'w[ ' + options.weekNumberTitle + ']' : '[' + options.weekNumberTitle + ' ]w'; }, smallWeekFormat: function (options){ return options.isRTL ? 'w[' + options.weekNumberTitle + ']' : '[' + options.weekNumberTitle + ']w'; }}; function populateInstanceComputableOptions(options){ $.each(instanceComputableOptions, function (name, func){ if(options[name]==null){ options[name]=func(options); }}); } exports.populateInstanceComputableOptions=populateInstanceComputableOptions; function datepickerLocale(localeCode, dpLocaleCode, dpOptions){ var fcOptions=exports.localeOptionHash[localeCode]||(exports.localeOptionHash[localeCode]={}); fcOptions.isRTL=dpOptions.isRTL; fcOptions.weekNumberTitle=dpOptions.weekHeader; $.each(dpComputableOptions, function (name, func){ fcOptions[name]=func(dpOptions); }); var jqDatePicker=$.datepicker; if(jqDatePicker){ jqDatePicker.regional[dpLocaleCode] = jqDatePicker.regional[localeCode] = dpOptions; jqDatePicker.regional.en=jqDatePicker.regional['']; jqDatePicker.setDefaults(dpOptions); }} exports.datepickerLocale=datepickerLocale; function locale(localeCode, newFcOptions){ var fcOptions; var momOptions; fcOptions=exports.localeOptionHash[localeCode]||(exports.localeOptionHash[localeCode]={}); if(newFcOptions){ fcOptions=exports.localeOptionHash[localeCode]=options_1.mergeOptions([fcOptions, newFcOptions]); } momOptions=getMomentLocaleData(localeCode); $.each(momComputableOptions, function (name, func){ if(fcOptions[name]==null){ fcOptions[name]=(func)(momOptions, fcOptions); }}); options_1.globalDefaults.locale=localeCode; } exports.locale=locale; function getMomentLocaleData(localeCode){ return moment.localeData(localeCode)||moment.localeData('en'); } exports.getMomentLocaleData=getMomentLocaleData; locale('en', options_1.englishDefaults); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var util_1=__webpack_require__(4); exports.globalDefaults={ titleRangeSeparator: ' \u2013 ', monthYearFormat: 'MMMM YYYY', defaultTimedEventDuration: '02:00:00', defaultAllDayEventDuration: { days: 1 }, forceEventDuration: false, nextDayThreshold: '09:00:00', columnHeader: true, defaultView: 'month', aspectRatio: 1.35, header: { left: 'title', center: '', right: 'today prev,next' }, weekends: true, weekNumbers: false, weekNumberTitle: 'W', weekNumberCalculation: 'local', scrollTime: '06:00:00', minTime: '00:00:00', maxTime: '24:00:00', showNonCurrentDates: true, lazyFetching: true, startParam: 'start', endParam: 'end', timezoneParam: 'timezone', timezone: false, locale: null, isRTL: false, buttonText: { prev: 'prev', next: 'next', prevYear: 'prev year', nextYear: 'next year', year: 'year', today: 'today', month: 'month', week: 'week', day: 'day' }, allDayText: 'all-day', agendaEventMinHeight: 0, theme: false, dragOpacity: .75, dragRevertDuration: 500, dragScroll: true, unselectAuto: true, dropAccept: '*', eventOrder: 'title', eventLimit: false, eventLimitText: 'more', eventLimitClick: 'popover', dayPopoverFormat: 'LL', handleWindowResize: true, windowResizeDelay: 100, longPressDelay: 1000 }; exports.englishDefaults={ dayPopoverFormat: 'dddd, MMMM D' }; exports.rtlDefaults={ header: { left: 'next,prev today', center: '', right: 'title' }, buttonIcons: { prev: 'right-single-arrow', next: 'left-single-arrow', prevYear: 'right-double-arrow', nextYear: 'left-double-arrow' }, themeButtonIcons: { prev: 'circle-triangle-e', next: 'circle-triangle-w', nextYear: 'seek-prev', prevYear: 'seek-next' }}; var complexOptions=[ 'header', 'footer', 'buttonText', 'buttonIcons', 'themeButtonIcons' ]; function mergeOptions(optionObjs){ return util_1.mergeProps(optionObjs, complexOptions); } exports.mergeOptions=mergeOptions; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var util_1=__webpack_require__(4); var Class= (function (){ function Class(){ } Class.extend=function (members){ var SubClass= (function (_super){ tslib_1.__extends(SubClass, _super); function SubClass(){ return _super!==null&&_super.apply(this, arguments)||this; } return SubClass; }(this)); util_1.copyOwnProps(members, SubClass.prototype); return SubClass; }; Class.mixin=function (members){ util_1.copyOwnProps(members, this.prototype); }; return Class; }()); exports.default=Class; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var ParsableModelMixin_1=__webpack_require__(208); var EventDef= (function (){ function EventDef(source){ this.source=source; this.className=[]; this.miscProps={};} EventDef.parse=function (rawInput, source){ var def=new this(source); if(def.applyProps(rawInput)){ return def; } return false; }; EventDef.normalizeId=function (id){ return String(id); }; EventDef.generateId=function (){ return '_fc' + (EventDef.uuid++); }; EventDef.prototype.clone=function (){ var copy=new this.constructor(this.source); copy.id=this.id; copy.rawId=this.rawId; copy.uid=this.uid; EventDef.copyVerbatimStandardProps(this, copy); copy.className=this.className.slice(); copy.miscProps=$.extend({}, this.miscProps); return copy; }; EventDef.prototype.hasInverseRendering=function (){ return this.getRendering()==='inverse-background'; }; EventDef.prototype.hasBgRendering=function (){ var rendering=this.getRendering(); return rendering==='inverse-background'||rendering==='background'; }; EventDef.prototype.getRendering=function (){ if(this.rendering!=null){ return this.rendering; } return this.source.rendering; }; EventDef.prototype.getConstraint=function (){ if(this.constraint!=null){ return this.constraint; } if(this.source.constraint!=null){ return this.source.constraint; } return this.source.calendar.opt('eventConstraint'); }; EventDef.prototype.getOverlap=function (){ if(this.overlap!=null){ return this.overlap; } if(this.source.overlap!=null){ return this.source.overlap; } return this.source.calendar.opt('eventOverlap'); }; EventDef.prototype.isStartExplicitlyEditable=function (){ if(this.startEditable!=null){ return this.startEditable; } return this.source.startEditable; }; EventDef.prototype.isDurationExplicitlyEditable=function (){ if(this.durationEditable!=null){ return this.durationEditable; } return this.source.durationEditable; }; EventDef.prototype.isExplicitlyEditable=function (){ if(this.editable!=null){ return this.editable; } return this.source.editable; }; EventDef.prototype.toLegacy=function (){ var obj=$.extend({}, this.miscProps); obj._id=this.uid; obj.source=this.source; obj.className=this.className.slice(); obj.allDay=this.isAllDay(); if(this.rawId!=null){ obj.id=this.rawId; } EventDef.copyVerbatimStandardProps(this, obj); return obj; }; EventDef.prototype.applyManualStandardProps=function (rawProps){ if(rawProps.id!=null){ this.id=EventDef.normalizeId((this.rawId=rawProps.id)); }else{ this.id=EventDef.generateId(); } if(rawProps._id!=null){ this.uid=String(rawProps._id); }else{ this.uid=EventDef.generateId(); } if($.isArray(rawProps.className)){ this.className=rawProps.className; } if(typeof rawProps.className==='string'){ this.className=rawProps.className.split(/\s+/); } return true; }; EventDef.prototype.applyMiscProps=function (rawProps){ $.extend(this.miscProps, rawProps); }; EventDef.uuid=0; EventDef.defineStandardProps=ParsableModelMixin_1.default.defineStandardProps; EventDef.copyVerbatimStandardProps=ParsableModelMixin_1.default.copyVerbatimStandardProps; return EventDef; }()); exports.default=EventDef; ParsableModelMixin_1.default.mixInto(EventDef); EventDef.defineStandardProps({ _id: false, id: false, className: false, source: false, title: true, url: true, rendering: true, constraint: true, overlap: true, editable: true, startEditable: true, durationEditable: true, color: true, backgroundColor: true, borderColor: true, textColor: true }); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var EventRange_1=__webpack_require__(211); var EventFootprint_1=__webpack_require__(36); var ComponentFootprint_1=__webpack_require__(12); function eventDefsToEventInstances(eventDefs, unzonedRange){ var eventInstances=[]; var i; for (i=0; i < eventDefs.length; i++){ eventInstances.push.apply(eventInstances, eventDefs[i].buildInstances(unzonedRange)); } return eventInstances; } exports.eventDefsToEventInstances=eventDefsToEventInstances; function eventInstanceToEventRange(eventInstance){ return new EventRange_1.default(eventInstance.dateProfile.unzonedRange, eventInstance.def, eventInstance); } exports.eventInstanceToEventRange=eventInstanceToEventRange; function eventRangeToEventFootprint(eventRange){ return new EventFootprint_1.default(new ComponentFootprint_1.default(eventRange.unzonedRange, eventRange.eventDef.isAllDay()), eventRange.eventDef, eventRange.eventInstance ); } exports.eventRangeToEventFootprint=eventRangeToEventFootprint; function eventInstanceToUnzonedRange(eventInstance){ return eventInstance.dateProfile.unzonedRange; } exports.eventInstanceToUnzonedRange=eventInstanceToUnzonedRange; function eventFootprintToComponentFootprint(eventFootprint){ return eventFootprint.componentFootprint; } exports.eventFootprintToComponentFootprint=eventFootprintToComponentFootprint; }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); var EventFootprint= (function (){ function EventFootprint(componentFootprint, eventDef, eventInstance){ this.componentFootprint=componentFootprint; this.eventDef=eventDef; if(eventInstance){ this.eventInstance=eventInstance; }} EventFootprint.prototype.getEventLegacy=function (){ return (this.eventInstance||this.eventDef).toLegacy(); }; return EventFootprint; }()); exports.default=EventFootprint; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var util_1=__webpack_require__(4); var EventDateProfile_1=__webpack_require__(17); var EventDef_1=__webpack_require__(34); var EventDefDateMutation_1=__webpack_require__(50); var SingleEventDef_1=__webpack_require__(13); var EventDefMutation= (function (){ function EventDefMutation(){ } EventDefMutation.createFromRawProps=function (eventInstance, rawProps, largeUnit){ var eventDef=eventInstance.def; var dateProps={}; var standardProps={}; var miscProps={}; var verbatimStandardProps={}; var eventDefId=null; var className=null; var propName; var dateProfile; var dateMutation; var defMutation; for (propName in rawProps){ if(EventDateProfile_1.default.isStandardProp(propName)){ dateProps[propName]=rawProps[propName]; } else if(eventDef.isStandardProp(propName)){ standardProps[propName]=rawProps[propName]; } else if(eventDef.miscProps[propName]!==rawProps[propName]){ miscProps[propName]=rawProps[propName]; }} dateProfile=EventDateProfile_1.default.parse(dateProps, eventDef.source); if(dateProfile){ dateMutation=EventDefDateMutation_1.default.createFromDiff(eventInstance.dateProfile, dateProfile, largeUnit); } if(standardProps.id!==eventDef.id){ eventDefId=standardProps.id; } if(!util_1.isArraysEqual(standardProps.className, eventDef.className)){ className=standardProps.className; } EventDef_1.default.copyVerbatimStandardProps(standardProps, verbatimStandardProps ); defMutation=new EventDefMutation(); defMutation.eventDefId=eventDefId; defMutation.className=className; defMutation.verbatimStandardProps=verbatimStandardProps; defMutation.miscProps=miscProps; if(dateMutation){ defMutation.dateMutation=dateMutation; } return defMutation; }; EventDefMutation.prototype.mutateSingle=function (eventDef){ var origDateProfile; if(this.dateMutation){ origDateProfile=eventDef.dateProfile; eventDef.dateProfile=this.dateMutation.buildNewDateProfile(origDateProfile, eventDef.source.calendar); } if(this.eventDefId!=null){ eventDef.id=EventDef_1.default.normalizeId((eventDef.rawId=this.eventDefId)); } if(this.className){ eventDef.className=this.className; } if(this.verbatimStandardProps){ SingleEventDef_1.default.copyVerbatimStandardProps(this.verbatimStandardProps, eventDef ); } if(this.miscProps){ eventDef.applyMiscProps(this.miscProps); } if(origDateProfile){ return function (){ eventDef.dateProfile=origDateProfile; };}else{ return function (){ };}}; EventDefMutation.prototype.setDateMutation=function (dateMutation){ if(dateMutation&&!dateMutation.isEmpty()){ this.dateMutation=dateMutation; }else{ this.dateMutation=null; }}; EventDefMutation.prototype.isEmpty=function (){ return !this.dateMutation; }; return EventDefMutation; }()); exports.default=EventDefMutation; }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); exports.default={ sourceClasses: [], registerClass: function (EventSourceClass){ this.sourceClasses.unshift(EventSourceClass); }, parse: function (rawInput, calendar){ var sourceClasses=this.sourceClasses; var i; var eventSource; for (i=0; i < sourceClasses.length; i++){ eventSource=sourceClasses[i].parse(rawInput, calendar); if(eventSource){ return eventSource; }} }}; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var Class_1=__webpack_require__(33); var Scroller= (function (_super){ tslib_1.__extends(Scroller, _super); function Scroller(options){ var _this=_super.call(this)||this; options=options||{}; _this.overflowX=options.overflowX||options.overflow||'auto'; _this.overflowY=options.overflowY||options.overflow||'auto'; return _this; } Scroller.prototype.render=function (){ this.el=this.renderEl(); this.applyOverflow(); }; Scroller.prototype.renderEl=function (){ return (this.scrollEl=$('
')); }; Scroller.prototype.clear=function (){ this.setHeight('auto'); this.applyOverflow(); }; Scroller.prototype.destroy=function (){ this.el.remove(); }; Scroller.prototype.applyOverflow=function (){ this.scrollEl.css({ 'overflow-x': this.overflowX, 'overflow-y': this.overflowY }); }; Scroller.prototype.lockOverflow=function (scrollbarWidths){ var overflowX=this.overflowX; var overflowY=this.overflowY; scrollbarWidths=scrollbarWidths||this.getScrollbarWidths(); if(overflowX==='auto'){ overflowX=(scrollbarWidths.top||scrollbarWidths.bottom || this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth) ? 'scroll':'hidden'; } if(overflowY==='auto'){ overflowY=(scrollbarWidths.left||scrollbarWidths.right || this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight) ? 'scroll':'hidden'; } this.scrollEl.css({ 'overflow-x': overflowX, 'overflow-y': overflowY }); }; Scroller.prototype.setHeight=function (height){ this.scrollEl.height(height); }; Scroller.prototype.getScrollTop=function (){ return this.scrollEl.scrollTop(); }; Scroller.prototype.setScrollTop=function (top){ this.scrollEl.scrollTop(top); }; Scroller.prototype.getClientWidth=function (){ return this.scrollEl[0].clientWidth; }; Scroller.prototype.getClientHeight=function (){ return this.scrollEl[0].clientHeight; }; Scroller.prototype.getScrollbarWidths=function (){ return util_1.getScrollbarWidths(this.scrollEl); }; return Scroller; }(Class_1.default)); exports.default=Scroller; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var DateComponent_1=__webpack_require__(219); var GlobalEmitter_1=__webpack_require__(21); var InteractiveDateComponent= (function (_super){ tslib_1.__extends(InteractiveDateComponent, _super); function InteractiveDateComponent(_view, _options){ var _this=_super.call(this, _view, _options)||this; _this.segSelector='.fc-event-container > *'; if(_this.dateSelectingClass){ _this.dateClicking=new _this.dateClickingClass(_this); } if(_this.dateSelectingClass){ _this.dateSelecting=new _this.dateSelectingClass(_this); } if(_this.eventPointingClass){ _this.eventPointing=new _this.eventPointingClass(_this); } if(_this.eventDraggingClass&&_this.eventPointing){ _this.eventDragging=new _this.eventDraggingClass(_this, _this.eventPointing); } if(_this.eventResizingClass&&_this.eventPointing){ _this.eventResizing=new _this.eventResizingClass(_this, _this.eventPointing); } if(_this.externalDroppingClass){ _this.externalDropping=new _this.externalDroppingClass(_this); } return _this; } InteractiveDateComponent.prototype.setElement=function (el){ _super.prototype.setElement.call(this, el); if(this.dateClicking){ this.dateClicking.bindToEl(el); } if(this.dateSelecting){ this.dateSelecting.bindToEl(el); } this.bindAllSegHandlersToEl(el); }; InteractiveDateComponent.prototype.removeElement=function (){ this.endInteractions(); _super.prototype.removeElement.call(this); }; InteractiveDateComponent.prototype.executeEventUnrender=function (){ this.endInteractions(); _super.prototype.executeEventUnrender.call(this); }; InteractiveDateComponent.prototype.bindGlobalHandlers=function (){ _super.prototype.bindGlobalHandlers.call(this); if(this.externalDropping){ this.externalDropping.bindToDocument(); }}; InteractiveDateComponent.prototype.unbindGlobalHandlers=function (){ _super.prototype.unbindGlobalHandlers.call(this); if(this.externalDropping){ this.externalDropping.unbindFromDocument(); }}; InteractiveDateComponent.prototype.bindDateHandlerToEl=function (el, name, handler){ var _this=this; this.el.on(name, function (ev){ if(!$(ev.target).is(_this.segSelector + ':not(.fc-helper),' + _this.segSelector + ':not(.fc-helper) *,' + '.fc-more,' + 'a[data-goto]' )){ return handler.call(_this, ev); }}); }; InteractiveDateComponent.prototype.bindAllSegHandlersToEl=function (el){ [ this.eventPointing, this.eventDragging, this.eventResizing ].forEach(function (eventInteraction){ if(eventInteraction){ eventInteraction.bindToEl(el); }}); }; InteractiveDateComponent.prototype.bindSegHandlerToEl=function (el, name, handler){ var _this=this; el.on(name, this.segSelector, function (ev){ var segEl=$(ev.currentTarget); if(!segEl.is('.fc-helper')){ var seg=segEl.data('fc-seg'); if(seg&&!_this.shouldIgnoreEventPointing()){ return handler.call(_this, seg, ev); }} }); }; InteractiveDateComponent.prototype.shouldIgnoreMouse=function (){ return GlobalEmitter_1.default.get().shouldIgnoreMouse(); }; InteractiveDateComponent.prototype.shouldIgnoreTouch=function (){ var view=this._getView(); return view.isSelected||view.selectedEvent; }; InteractiveDateComponent.prototype.shouldIgnoreEventPointing=function (){ return (this.eventDragging&&this.eventDragging.isDragging) || (this.eventResizing&&this.eventResizing.isResizing); }; InteractiveDateComponent.prototype.canStartSelection=function (seg, ev){ return util_1.getEvIsTouch(ev) && !this.canStartResize(seg, ev) && (this.isEventDefDraggable(seg.footprint.eventDef) || this.isEventDefResizable(seg.footprint.eventDef)); }; InteractiveDateComponent.prototype.canStartDrag=function (seg, ev){ return !this.canStartResize(seg, ev) && this.isEventDefDraggable(seg.footprint.eventDef); }; InteractiveDateComponent.prototype.canStartResize=function (seg, ev){ var view=this._getView(); var eventDef=seg.footprint.eventDef; return (!util_1.getEvIsTouch(ev)||view.isEventDefSelected(eventDef)) && this.isEventDefResizable(eventDef) && $(ev.target).is('.fc-resizer'); }; InteractiveDateComponent.prototype.endInteractions=function (){ [ this.dateClicking, this.dateSelecting, this.eventPointing, this.eventDragging, this.eventResizing ].forEach(function (interaction){ if(interaction){ interaction.end(); }}); }; InteractiveDateComponent.prototype.isEventDefDraggable=function (eventDef){ return this.isEventDefStartEditable(eventDef); }; InteractiveDateComponent.prototype.isEventDefStartEditable=function (eventDef){ var isEditable=eventDef.isStartExplicitlyEditable(); if(isEditable==null){ isEditable=this.opt('eventStartEditable'); if(isEditable==null){ isEditable=this.isEventDefGenerallyEditable(eventDef); }} return isEditable; }; InteractiveDateComponent.prototype.isEventDefGenerallyEditable=function (eventDef){ var isEditable=eventDef.isExplicitlyEditable(); if(isEditable==null){ isEditable=this.opt('editable'); } return isEditable; }; InteractiveDateComponent.prototype.isEventDefResizableFromStart=function (eventDef){ return this.opt('eventResizableFromStart')&&this.isEventDefResizable(eventDef); }; InteractiveDateComponent.prototype.isEventDefResizableFromEnd=function (eventDef){ return this.isEventDefResizable(eventDef); }; InteractiveDateComponent.prototype.isEventDefResizable=function (eventDef){ var isResizable=eventDef.isDurationExplicitlyEditable(); if(isResizable==null){ isResizable=this.opt('eventDurationEditable'); if(isResizable==null){ isResizable=this.isEventDefGenerallyEditable(eventDef); }} return isResizable; }; InteractiveDateComponent.prototype.diffDates=function (a, b){ if(this.largeUnit){ return util_1.diffByUnit(a, b, this.largeUnit); }else{ return util_1.diffDayTime(a, b); }}; InteractiveDateComponent.prototype.isEventInstanceGroupAllowed=function (eventInstanceGroup){ var view=this._getView(); var dateProfile=this.dateProfile; var eventFootprints=this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges()); var i; for (i=0; i < eventFootprints.length; i++){ if(!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)){ return false; }} return view.calendar.constraints.isEventInstanceGroupAllowed(eventInstanceGroup); }; InteractiveDateComponent.prototype.isExternalInstanceGroupAllowed=function (eventInstanceGroup){ var view=this._getView(); var dateProfile=this.dateProfile; var eventFootprints=this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges()); var i; for (i=0; i < eventFootprints.length; i++){ if(!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)){ return false; }} for (i=0; i < eventFootprints.length; i++){ if(!view.calendar.constraints.isSelectionFootprintAllowed(eventFootprints[i].componentFootprint)){ return false; }} return true; }; return InteractiveDateComponent; }(DateComponent_1.default)); exports.default=InteractiveDateComponent; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var moment=__webpack_require__(0); var util_1=__webpack_require__(4); var RenderQueue_1=__webpack_require__(218); var DateProfileGenerator_1=__webpack_require__(221); var InteractiveDateComponent_1=__webpack_require__(40); var GlobalEmitter_1=__webpack_require__(21); var UnzonedRange_1=__webpack_require__(5); var View= (function (_super){ tslib_1.__extends(View, _super); function View(calendar, viewSpec){ var _this=_super.call(this, null, viewSpec.options)||this; _this.batchRenderDepth=0; _this.isSelected=false; _this.calendar=calendar; _this.viewSpec=viewSpec; _this.type=viewSpec.type; _this.name=_this.type; _this.initRenderQueue(); _this.initHiddenDays(); _this.dateProfileGenerator=new _this.dateProfileGeneratorClass(_this); _this.bindBaseRenderHandlers(); _this.eventOrderSpecs=util_1.parseFieldSpecs(_this.opt('eventOrder')); if(_this['initialize']){ _this['initialize'](); } return _this; } View.prototype._getView=function (){ return this; }; View.prototype.opt=function (name){ return this.options[name]; }; View.prototype.initRenderQueue=function (){ this.renderQueue=new RenderQueue_1.default({ event: this.opt('eventRenderWait') }); this.renderQueue.on('start', this.onRenderQueueStart.bind(this)); this.renderQueue.on('stop', this.onRenderQueueStop.bind(this)); this.on('before:change', this.startBatchRender); this.on('change', this.stopBatchRender); }; View.prototype.onRenderQueueStart=function (){ this.calendar.freezeContentHeight(); this.addScroll(this.queryScroll()); }; View.prototype.onRenderQueueStop=function (){ if(this.calendar.updateViewSize()){ this.popScroll(); } this.calendar.thawContentHeight(); }; View.prototype.startBatchRender=function (){ if(!(this.batchRenderDepth++)){ this.renderQueue.pause(); }}; View.prototype.stopBatchRender=function (){ if(!(--this.batchRenderDepth)){ this.renderQueue.resume(); }}; View.prototype.requestRender=function (func, namespace, actionType){ this.renderQueue.queue(func, namespace, actionType); }; View.prototype.whenSizeUpdated=function (func){ if(this.renderQueue.isRunning){ this.renderQueue.one('stop', func.bind(this)); }else{ func.call(this); }}; View.prototype.computeTitle=function (dateProfile){ var unzonedRange; if(/^(year|month)$/.test(dateProfile.currentRangeUnit)){ unzonedRange=dateProfile.currentUnzonedRange; }else{ unzonedRange=dateProfile.activeUnzonedRange; } return this.formatRange({ start: this.calendar.msToMoment(unzonedRange.startMs, dateProfile.isRangeAllDay), end: this.calendar.msToMoment(unzonedRange.endMs, dateProfile.isRangeAllDay) }, dateProfile.isRangeAllDay, this.opt('titleFormat')||this.computeTitleFormat(dateProfile), this.opt('titleRangeSeparator')); }; View.prototype.computeTitleFormat=function (dateProfile){ var currentRangeUnit=dateProfile.currentRangeUnit; if(currentRangeUnit==='year'){ return 'YYYY'; } else if(currentRangeUnit==='month'){ return this.opt('monthYearFormat'); } else if(dateProfile.currentUnzonedRange.as('days') > 1){ return 'll'; }else{ return 'LL'; }}; View.prototype.setDate=function (date){ var currentDateProfile=this.get('dateProfile'); var newDateProfile=this.dateProfileGenerator.build(date, undefined, true); if(!currentDateProfile || !currentDateProfile.activeUnzonedRange.equals(newDateProfile.activeUnzonedRange)){ this.set('dateProfile', newDateProfile); }}; View.prototype.unsetDate=function (){ this.unset('dateProfile'); }; View.prototype.fetchInitialEvents=function (dateProfile){ var calendar=this.calendar; var forceAllDay=dateProfile.isRangeAllDay&&!this.usesMinMaxTime; return calendar.requestEvents(calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, forceAllDay), calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, forceAllDay)); }; View.prototype.bindEventChanges=function (){ this.listenTo(this.calendar, 'eventsReset', this.resetEvents); }; View.prototype.unbindEventChanges=function (){ this.stopListeningTo(this.calendar, 'eventsReset'); }; View.prototype.setEvents=function (eventsPayload){ this.set('currentEvents', eventsPayload); this.set('hasEvents', true); }; View.prototype.unsetEvents=function (){ this.unset('currentEvents'); this.unset('hasEvents'); }; View.prototype.resetEvents=function (eventsPayload){ this.startBatchRender(); this.unsetEvents(); this.setEvents(eventsPayload); this.stopBatchRender(); }; View.prototype.requestDateRender=function (dateProfile){ var _this=this; this.requestRender(function (){ _this.executeDateRender(dateProfile); }, 'date', 'init'); }; View.prototype.requestDateUnrender=function (){ var _this=this; this.requestRender(function (){ _this.executeDateUnrender(); }, 'date', 'destroy'); }; View.prototype.executeDateRender=function (dateProfile){ _super.prototype.executeDateRender.call(this, dateProfile); if(this['render']){ this['render'](); } this.trigger('datesRendered'); this.addScroll({ isDateInit: true }); this.startNowIndicator(); }; View.prototype.executeDateUnrender=function (){ this.unselect(); this.stopNowIndicator(); this.trigger('before:datesUnrendered'); if(this['destroy']){ this['destroy'](); } _super.prototype.executeDateUnrender.call(this); }; View.prototype.bindBaseRenderHandlers=function (){ var _this=this; this.on('datesRendered', function (){ _this.whenSizeUpdated(_this.triggerViewRender); }); this.on('before:datesUnrendered', function (){ _this.triggerViewDestroy(); }); }; View.prototype.triggerViewRender=function (){ this.publiclyTrigger('viewRender', { context: this, args: [this, this.el] }); }; View.prototype.triggerViewDestroy=function (){ this.publiclyTrigger('viewDestroy', { context: this, args: [this, this.el] }); }; View.prototype.requestEventsRender=function (eventsPayload){ var _this=this; this.requestRender(function (){ _this.executeEventRender(eventsPayload); _this.whenSizeUpdated(_this.triggerAfterEventsRendered); }, 'event', 'init'); }; View.prototype.requestEventsUnrender=function (){ var _this=this; this.requestRender(function (){ _this.triggerBeforeEventsDestroyed(); _this.executeEventUnrender(); }, 'event', 'destroy'); }; View.prototype.requestBusinessHoursRender=function (businessHourGenerator){ var _this=this; this.requestRender(function (){ _this.renderBusinessHours(businessHourGenerator); }, 'businessHours', 'init'); }; View.prototype.requestBusinessHoursUnrender=function (){ var _this=this; this.requestRender(function (){ _this.unrenderBusinessHours(); }, 'businessHours', 'destroy'); }; View.prototype.bindGlobalHandlers=function (){ _super.prototype.bindGlobalHandlers.call(this); this.listenTo(GlobalEmitter_1.default.get(), { touchstart: this.processUnselect, mousedown: this.handleDocumentMousedown }); }; View.prototype.unbindGlobalHandlers=function (){ _super.prototype.unbindGlobalHandlers.call(this); this.stopListeningTo(GlobalEmitter_1.default.get()); }; View.prototype.startNowIndicator=function (){ var _this=this; var unit; var update; var delay; if(this.opt('nowIndicator')){ unit=this.getNowIndicatorUnit(); if(unit){ update=util_1.proxy(this, 'updateNowIndicator'); this.initialNowDate=this.calendar.getNow(); this.initialNowQueriedMs=new Date().valueOf(); delay=this.initialNowDate.clone().startOf(unit).add(1, unit).valueOf() - this.initialNowDate.valueOf(); this.nowIndicatorTimeoutID=setTimeout(function (){ _this.nowIndicatorTimeoutID=null; update(); delay=+moment.duration(1, unit); delay=Math.max(100, delay); _this.nowIndicatorIntervalID=setInterval(update, delay); }, delay); }} }; View.prototype.updateNowIndicator=function (){ if(this.isDatesRendered && this.initialNowDate ){ this.unrenderNowIndicator(); this.renderNowIndicator(this.initialNowDate.clone().add(new Date().valueOf() - this.initialNowQueriedMs) ); this.isNowIndicatorRendered=true; }}; View.prototype.stopNowIndicator=function (){ if(this.isNowIndicatorRendered){ if(this.nowIndicatorTimeoutID){ clearTimeout(this.nowIndicatorTimeoutID); this.nowIndicatorTimeoutID=null; } if(this.nowIndicatorIntervalID){ clearInterval(this.nowIndicatorIntervalID); this.nowIndicatorIntervalID=null; } this.unrenderNowIndicator(); this.isNowIndicatorRendered=false; }}; View.prototype.updateSize=function (totalHeight, isAuto, isResize){ if(this['setHeight']){ this['setHeight'](totalHeight, isAuto); }else{ _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); } this.updateNowIndicator(); }; View.prototype.addScroll=function (scroll){ var queuedScroll=this.queuedScroll||(this.queuedScroll={}); $.extend(queuedScroll, scroll); }; View.prototype.popScroll=function (){ this.applyQueuedScroll(); this.queuedScroll=null; }; View.prototype.applyQueuedScroll=function (){ if(this.queuedScroll){ this.applyScroll(this.queuedScroll); }}; View.prototype.queryScroll=function (){ var scroll={}; if(this.isDatesRendered){ $.extend(scroll, this.queryDateScroll()); } return scroll; }; View.prototype.applyScroll=function (scroll){ if(scroll.isDateInit&&this.isDatesRendered){ $.extend(scroll, this.computeInitialDateScroll()); } if(this.isDatesRendered){ this.applyDateScroll(scroll); }}; View.prototype.computeInitialDateScroll=function (){ return {};}; View.prototype.queryDateScroll=function (){ return {};}; View.prototype.applyDateScroll=function (scroll){ }; View.prototype.reportEventDrop=function (eventInstance, eventMutation, el, ev){ var eventManager=this.calendar.eventManager; var undoFunc=eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation); var dateMutation=eventMutation.dateMutation; if(dateMutation){ eventInstance.dateProfile=dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar); } this.triggerEventDrop(eventInstance, (dateMutation&&dateMutation.dateDelta)||moment.duration(), undoFunc, el, ev); }; View.prototype.triggerEventDrop=function (eventInstance, dateDelta, undoFunc, el, ev){ this.publiclyTrigger('eventDrop', { context: el[0], args: [ eventInstance.toLegacy(), dateDelta, undoFunc, ev, {}, this ] }); }; View.prototype.reportExternalDrop=function (singleEventDef, isEvent, isSticky, el, ev, ui){ if(isEvent){ this.calendar.eventManager.addEventDef(singleEventDef, isSticky); } this.triggerExternalDrop(singleEventDef, isEvent, el, ev, ui); }; View.prototype.triggerExternalDrop=function (singleEventDef, isEvent, el, ev, ui){ this.publiclyTrigger('drop', { context: el[0], args: [ singleEventDef.dateProfile.start.clone(), ev, ui, this ] }); if(isEvent){ this.publiclyTrigger('eventReceive', { context: this, args: [ singleEventDef.buildInstance().toLegacy(), this ] }); }}; View.prototype.reportEventResize=function (eventInstance, eventMutation, el, ev){ var eventManager=this.calendar.eventManager; var undoFunc=eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation); eventInstance.dateProfile=eventMutation.dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar); this.triggerEventResize(eventInstance, eventMutation.dateMutation.endDelta, undoFunc, el, ev); }; View.prototype.triggerEventResize=function (eventInstance, durationDelta, undoFunc, el, ev){ this.publiclyTrigger('eventResize', { context: el[0], args: [ eventInstance.toLegacy(), durationDelta, undoFunc, ev, {}, this ] }); }; View.prototype.select=function (footprint, ev){ this.unselect(ev); this.renderSelectionFootprint(footprint); this.reportSelection(footprint, ev); }; View.prototype.renderSelectionFootprint=function (footprint){ if(this['renderSelection']){ this['renderSelection'](footprint.toLegacy(this.calendar)); }else{ _super.prototype.renderSelectionFootprint.call(this, footprint); }}; View.prototype.reportSelection=function (footprint, ev){ this.isSelected=true; this.triggerSelect(footprint, ev); }; View.prototype.triggerSelect=function (footprint, ev){ var dateProfile=this.calendar.footprintToDateProfile(footprint); this.publiclyTrigger('select', { context: this, args: [ dateProfile.start, dateProfile.end, ev, this ] }); }; View.prototype.unselect=function (ev){ if(this.isSelected){ this.isSelected=false; if(this['destroySelection']){ this['destroySelection'](); } this.unrenderSelection(); this.publiclyTrigger('unselect', { context: this, args: [ev, this] }); }}; View.prototype.selectEventInstance=function (eventInstance){ if(!this.selectedEventInstance || this.selectedEventInstance!==eventInstance){ this.unselectEventInstance(); this.getEventSegs().forEach(function (seg){ if(seg.footprint.eventInstance===eventInstance && seg.el ){ seg.el.addClass('fc-selected'); }}); this.selectedEventInstance=eventInstance; }}; View.prototype.unselectEventInstance=function (){ if(this.selectedEventInstance){ this.getEventSegs().forEach(function (seg){ if(seg.el){ seg.el.removeClass('fc-selected'); }}); this.selectedEventInstance=null; }}; View.prototype.isEventDefSelected=function (eventDef){ return this.selectedEventInstance&&this.selectedEventInstance.def.id===eventDef.id; }; View.prototype.handleDocumentMousedown=function (ev){ if(util_1.isPrimaryMouseButton(ev)){ this.processUnselect(ev); }}; View.prototype.processUnselect=function (ev){ this.processRangeUnselect(ev); this.processEventUnselect(ev); }; View.prototype.processRangeUnselect=function (ev){ var ignore; if(this.isSelected&&this.opt('unselectAuto')){ ignore=this.opt('unselectCancel'); if(!ignore||!$(ev.target).closest(ignore).length){ this.unselect(ev); }} }; View.prototype.processEventUnselect=function (ev){ if(this.selectedEventInstance){ if(!$(ev.target).closest('.fc-selected').length){ this.unselectEventInstance(); }} }; View.prototype.triggerBaseRendered=function (){ this.publiclyTrigger('viewRender', { context: this, args: [this, this.el] }); }; View.prototype.triggerBaseUnrendered=function (){ this.publiclyTrigger('viewDestroy', { context: this, args: [this, this.el] }); }; View.prototype.triggerDayClick=function (footprint, dayEl, ev){ var dateProfile=this.calendar.footprintToDateProfile(footprint); this.publiclyTrigger('dayClick', { context: dayEl, args: [dateProfile.start, ev, this] }); }; View.prototype.isDateInOtherMonth=function (date, dateProfile){ return false; }; View.prototype.getUnzonedRangeOption=function (name){ var val=this.opt(name); if(typeof val==='function'){ val=val.apply(null, Array.prototype.slice.call(arguments, 1)); } if(val){ return this.calendar.parseUnzonedRange(val); }}; View.prototype.initHiddenDays=function (){ var hiddenDays=this.opt('hiddenDays')||[]; var isHiddenDayHash=[]; var dayCnt=0; var i; if(this.opt('weekends')===false){ hiddenDays.push(0, 6); } for (i=0; i < 7; i++){ if(!(isHiddenDayHash[i]=$.inArray(i, hiddenDays)!==-1)){ dayCnt++; }} if(!dayCnt){ throw new Error('invalid hiddenDays'); } this.isHiddenDayHash=isHiddenDayHash; }; View.prototype.trimHiddenDays=function (inputUnzonedRange){ var start=inputUnzonedRange.getStart(); var end=inputUnzonedRange.getEnd(); if(start){ start=this.skipHiddenDays(start); } if(end){ end=this.skipHiddenDays(end, -1, true); } if(start===null||end===null||start < end){ return new UnzonedRange_1.default(start, end); } return null; }; View.prototype.isHiddenDay=function (day){ if(moment.isMoment(day)){ day=day.day(); } return this.isHiddenDayHash[day]; }; View.prototype.skipHiddenDays=function (date, inc, isExclusive){ if(inc===void 0){ inc=1; } if(isExclusive===void 0){ isExclusive=false; } var out=date.clone(); while (this.isHiddenDayHash[(out.day() + (isExclusive ? inc:0) + 7) % 7]){ out.add(inc, 'days'); } return out; }; return View; }(InteractiveDateComponent_1.default)); exports.default=View; View.prototype.usesMinMaxTime=false; View.prototype.dateProfileGeneratorClass=DateProfileGenerator_1.default; View.watch('displayingDates', ['isInDom', 'dateProfile'], function (deps){ this.requestDateRender(deps.dateProfile); }, function (){ this.requestDateUnrender(); }); View.watch('displayingBusinessHours', ['displayingDates', 'businessHourGenerator'], function (deps){ this.requestBusinessHoursRender(deps.businessHourGenerator); }, function (){ this.requestBusinessHoursUnrender(); }); View.watch('initialEvents', ['dateProfile'], function (deps){ return this.fetchInitialEvents(deps.dateProfile); }); View.watch('bindingEvents', ['initialEvents'], function (deps){ this.setEvents(deps.initialEvents); this.bindEventChanges(); }, function (){ this.unbindEventChanges(); this.unsetEvents(); }); View.watch('displayingEvents', ['displayingDates', 'hasEvents'], function (){ this.requestEventsRender(this.get('currentEvents')); }, function (){ this.requestEventsUnrender(); }); View.watch('title', ['dateProfile'], function (deps){ return (this.title=this.computeTitle(deps.dateProfile)); }); View.watch('legacyDateProps', ['dateProfile'], function (deps){ var calendar=this.calendar; var dateProfile=deps.dateProfile; this.start=calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, dateProfile.isRangeAllDay); this.end=calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, dateProfile.isRangeAllDay); this.intervalStart=calendar.msToMoment(dateProfile.currentUnzonedRange.startMs, dateProfile.isRangeAllDay); this.intervalEnd=calendar.msToMoment(dateProfile.currentUnzonedRange.endMs, dateProfile.isRangeAllDay); }); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var EventRenderer= (function (){ function EventRenderer(component, fillRenderer){ this.view=component._getView(); this.component=component; this.fillRenderer=fillRenderer; } EventRenderer.prototype.opt=function (name){ return this.view.opt(name); }; EventRenderer.prototype.rangeUpdated=function (){ var displayEventTime; var displayEventEnd; this.eventTimeFormat = this.opt('eventTimeFormat') || this.opt('timeFormat') || this.computeEventTimeFormat(); displayEventTime=this.opt('displayEventTime'); if(displayEventTime==null){ displayEventTime=this.computeDisplayEventTime(); } displayEventEnd=this.opt('displayEventEnd'); if(displayEventEnd==null){ displayEventEnd=this.computeDisplayEventEnd(); } this.displayEventTime=displayEventTime; this.displayEventEnd=displayEventEnd; }; EventRenderer.prototype.render=function (eventsPayload){ var dateProfile=this.component._getDateProfile(); var eventDefId; var instanceGroup; var eventRanges; var bgRanges=[]; var fgRanges=[]; for (eventDefId in eventsPayload){ instanceGroup=eventsPayload[eventDefId]; eventRanges=instanceGroup.sliceRenderRanges(dateProfile.activeUnzonedRange); if(instanceGroup.getEventDef().hasBgRendering()){ bgRanges.push.apply(bgRanges, eventRanges); }else{ fgRanges.push.apply(fgRanges, eventRanges); }} this.renderBgRanges(bgRanges); this.renderFgRanges(fgRanges); }; EventRenderer.prototype.unrender=function (){ this.unrenderBgRanges(); this.unrenderFgRanges(); }; EventRenderer.prototype.renderFgRanges=function (eventRanges){ var eventFootprints=this.component.eventRangesToEventFootprints(eventRanges); var segs=this.component.eventFootprintsToSegs(eventFootprints); segs=this.renderFgSegEls(segs); if(this.renderFgSegs(segs)!==false){ this.fgSegs=segs; }}; EventRenderer.prototype.unrenderFgRanges=function (){ this.unrenderFgSegs(this.fgSegs||[]); this.fgSegs=null; }; EventRenderer.prototype.renderBgRanges=function (eventRanges){ var eventFootprints=this.component.eventRangesToEventFootprints(eventRanges); var segs=this.component.eventFootprintsToSegs(eventFootprints); if(this.renderBgSegs(segs)!==false){ this.bgSegs=segs; }}; EventRenderer.prototype.unrenderBgRanges=function (){ this.unrenderBgSegs(); this.bgSegs=null; }; EventRenderer.prototype.getSegs=function (){ return (this.bgSegs||[]).concat(this.fgSegs||[]); }; EventRenderer.prototype.renderFgSegs=function (segs){ return false; }; EventRenderer.prototype.unrenderFgSegs=function (segs){ }; EventRenderer.prototype.renderBgSegs=function (segs){ var _this=this; if(this.fillRenderer){ this.fillRenderer.renderSegs('bgEvent', segs, { getClasses: function (seg){ return _this.getBgClasses(seg.footprint.eventDef); }, getCss: function (seg){ return { 'background-color': _this.getBgColor(seg.footprint.eventDef) };}, filterEl: function (seg, el){ return _this.filterEventRenderEl(seg.footprint, el); }}); }else{ return false; }}; EventRenderer.prototype.unrenderBgSegs=function (){ if(this.fillRenderer){ this.fillRenderer.unrender('bgEvent'); }}; EventRenderer.prototype.renderFgSegEls=function (segs, disableResizing){ var _this=this; if(disableResizing===void 0){ disableResizing=false; } var hasEventRenderHandlers=this.view.hasPublicHandlers('eventRender'); var html=''; var renderedSegs=[]; var i; if(segs.length){ for (i=0; i < segs.length; i++){ this.beforeFgSegHtml(segs[i]); html +=this.fgSegHtml(segs[i], disableResizing); } $(html).each(function (i, node){ var seg=segs[i]; var el=$(node); if(hasEventRenderHandlers){ el=_this.filterEventRenderEl(seg.footprint, el); } if(el){ el.data('fc-seg', seg); seg.el=el; renderedSegs.push(seg); }}); } return renderedSegs; }; EventRenderer.prototype.beforeFgSegHtml=function (seg){ }; EventRenderer.prototype.fgSegHtml=function (seg, disableResizing){ }; EventRenderer.prototype.getSegClasses=function (seg, isDraggable, isResizable){ var classes=[ 'fc-event', seg.isStart ? 'fc-start':'fc-not-start', seg.isEnd ? 'fc-end':'fc-not-end' ].concat(this.getClasses(seg.footprint.eventDef)); if(isDraggable){ classes.push('fc-draggable'); } if(isResizable){ classes.push('fc-resizable'); } if(this.view.isEventDefSelected(seg.footprint.eventDef)){ classes.push('fc-selected'); } return classes; }; EventRenderer.prototype.filterEventRenderEl=function (eventFootprint, el){ var legacy=eventFootprint.getEventLegacy(); var custom=this.view.publiclyTrigger('eventRender', { context: legacy, args: [legacy, el, this.view] }); if(custom===false){ el=null; } else if(custom&&custom!==true){ el=$(custom); } return el; }; EventRenderer.prototype.getTimeText=function (eventFootprint, formatStr, displayEnd){ return this._getTimeText(eventFootprint.eventInstance.dateProfile.start, eventFootprint.eventInstance.dateProfile.end, eventFootprint.componentFootprint.isAllDay, formatStr, displayEnd); }; EventRenderer.prototype._getTimeText=function (start, end, isAllDay, formatStr, displayEnd){ if(formatStr==null){ formatStr=this.eventTimeFormat; } if(displayEnd==null){ displayEnd=this.displayEventEnd; } if(this.displayEventTime&&!isAllDay){ if(displayEnd&&end){ return this.view.formatRange({ start: start, end: end }, false, formatStr); }else{ return start.format(formatStr); }} return ''; }; EventRenderer.prototype.computeEventTimeFormat=function (){ return this.opt('smallTimeFormat'); }; EventRenderer.prototype.computeDisplayEventTime=function (){ return true; }; EventRenderer.prototype.computeDisplayEventEnd=function (){ return true; }; EventRenderer.prototype.getBgClasses=function (eventDef){ var classNames=this.getClasses(eventDef); classNames.push('fc-bgevent'); return classNames; }; EventRenderer.prototype.getClasses=function (eventDef){ var objs=this.getStylingObjs(eventDef); var i; var classNames=[]; for (i=0; i < objs.length; i++){ classNames.push.apply(classNames, objs[i].eventClassName||objs[i].className||[]); } return classNames; }; EventRenderer.prototype.getSkinCss=function (eventDef){ return { 'background-color': this.getBgColor(eventDef), 'border-color': this.getBorderColor(eventDef), color: this.getTextColor(eventDef) };}; EventRenderer.prototype.getBgColor=function (eventDef){ var objs=this.getStylingObjs(eventDef); var i; var val; for (i=0; i < objs.length&&!val; i++){ val=objs[i].eventBackgroundColor||objs[i].eventColor || objs[i].backgroundColor||objs[i].color; } if(!val){ val=this.opt('eventBackgroundColor')||this.opt('eventColor'); } return val; }; EventRenderer.prototype.getBorderColor=function (eventDef){ var objs=this.getStylingObjs(eventDef); var i; var val; for (i=0; i < objs.length&&!val; i++){ val=objs[i].eventBorderColor||objs[i].eventColor || objs[i].borderColor||objs[i].color; } if(!val){ val=this.opt('eventBorderColor')||this.opt('eventColor'); } return val; }; EventRenderer.prototype.getTextColor=function (eventDef){ var objs=this.getStylingObjs(eventDef); var i; var val; for (i=0; i < objs.length&&!val; i++){ val=objs[i].eventTextColor || objs[i].textColor; } if(!val){ val=this.opt('eventTextColor'); } return val; }; EventRenderer.prototype.getStylingObjs=function (eventDef){ var objs=this.getFallbackStylingObjs(eventDef); objs.unshift(eventDef); return objs; }; EventRenderer.prototype.getFallbackStylingObjs=function (eventDef){ return [eventDef.source]; }; EventRenderer.prototype.sortEventSegs=function (segs){ segs.sort(util_1.proxy(this, 'compareEventSegs')); }; EventRenderer.prototype.compareEventSegs=function (seg1, seg2){ var f1=seg1.footprint; var f2=seg2.footprint; var cf1=f1.componentFootprint; var cf2=f2.componentFootprint; var r1=cf1.unzonedRange; var r2=cf2.unzonedRange; return r1.startMs - r2.startMs || (r2.endMs - r2.startMs) - (r1.endMs - r1.startMs) || cf2.isAllDay - cf1.isAllDay || util_1.compareByFieldSpecs(f1.eventDef, f2.eventDef, this.view.eventOrderSpecs, f1.eventDef.miscProps, f2.eventDef.miscProps); }; return EventRenderer; }()); exports.default=EventRenderer; }), , , , , (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var moment_ext_1=__webpack_require__(10); moment_ext_1.newMomentProto.format=function (){ if(this._fullCalendar&&arguments[0]){ return formatDate(this, arguments[0]); } if(this._ambigTime){ return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD'); } if(this._ambigZone){ return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss'); } if(this._fullCalendar){ return moment_ext_1.oldMomentFormat(englishMoment(this)); } return moment_ext_1.oldMomentProto.format.apply(this, arguments); }; moment_ext_1.newMomentProto.toISOString=function (){ if(this._ambigTime){ return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD'); } if(this._ambigZone){ return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss'); } if(this._fullCalendar){ return moment_ext_1.oldMomentProto.toISOString.apply(englishMoment(this), arguments); } return moment_ext_1.oldMomentProto.toISOString.apply(this, arguments); }; function englishMoment(mom){ if(mom.locale()!=='en'){ return mom.clone().locale('en'); } return mom; } var PART_SEPARATOR='\u000b'; var SPECIAL_TOKEN_MARKER='\u001f'; var MAYBE_MARKER='\u001e'; var MAYBE_REGEXP=new RegExp(MAYBE_MARKER + '([^' + MAYBE_MARKER + ']*)' + MAYBE_MARKER, 'g'); var specialTokens={ t: function (date){ return moment_ext_1.oldMomentFormat(date, 'a').charAt(0); }, T: function (date){ return moment_ext_1.oldMomentFormat(date, 'A').charAt(0); }}; var largeTokenMap={ Y: { value: 1, unit: 'year' }, M: { value: 2, unit: 'month' }, W: { value: 3, unit: 'week' }, w: { value: 3, unit: 'week' }, D: { value: 4, unit: 'day' }, d: { value: 4, unit: 'day' }}; function formatDate(date, formatStr){ return renderFakeFormatString(getParsedFormatString(formatStr).fakeFormatString, date); } exports.formatDate=formatDate; function formatRange(date1, date2, formatStr, separator, isRTL){ var localeData; date1=moment_ext_1.default.parseZone(date1); date2=moment_ext_1.default.parseZone(date2); localeData=date1.localeData(); formatStr=localeData.longDateFormat(formatStr)||formatStr; return renderParsedFormat(getParsedFormatString(formatStr), date1, date2, separator||' - ', isRTL); } exports.formatRange=formatRange; function renderParsedFormat(parsedFormat, date1, date2, separator, isRTL){ var sameUnits=parsedFormat.sameUnits; var unzonedDate1=date1.clone().stripZone(); var unzonedDate2=date2.clone().stripZone(); // " var renderedParts1=renderFakeFormatStringParts(parsedFormat.fakeFormatString, date1); var renderedParts2=renderFakeFormatStringParts(parsedFormat.fakeFormatString, date2); var leftI; var leftStr=''; var rightI; var rightStr=''; var middleI; var middleStr1=''; var middleStr2=''; var middleStr=''; for (leftI=0; leftI < sameUnits.length&&(!sameUnits[leftI]||unzonedDate1.isSame(unzonedDate2, sameUnits[leftI])); leftI++){ leftStr +=renderedParts1[leftI]; } for (rightI=sameUnits.length - 1; rightI > leftI&&(!sameUnits[rightI]||unzonedDate1.isSame(unzonedDate2, sameUnits[rightI])); rightI--){ if(rightI - 1===leftI&&renderedParts1[rightI]==='.'){ break; } rightStr=renderedParts1[rightI] + rightStr; } for (middleI=leftI; middleI <=rightI; middleI++){ middleStr1 +=renderedParts1[middleI]; middleStr2 +=renderedParts2[middleI]; } if(middleStr1||middleStr2){ if(isRTL){ middleStr=middleStr2 + separator + middleStr1; }else{ middleStr=middleStr1 + separator + middleStr2; }} return processMaybeMarkers(leftStr + middleStr + rightStr); } var parsedFormatStrCache={}; function getParsedFormatString(formatStr){ return parsedFormatStrCache[formatStr] || (parsedFormatStrCache[formatStr]=parseFormatString(formatStr)); } function parseFormatString(formatStr){ var chunks=chunkFormatString(formatStr); return { fakeFormatString: buildFakeFormatString(chunks), sameUnits: buildSameUnits(chunks) };} function chunkFormatString(formatStr){ var chunks=[]; var match; var chunker=/\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g; while ((match=chunker.exec(formatStr))){ if(match[1]){ chunks.push.apply(chunks, splitStringLiteral(match[1])); } else if(match[2]){ chunks.push({ maybe: chunkFormatString(match[2]) }); } else if(match[3]){ chunks.push({ token: match[3] }); } else if(match[5]){ chunks.push.apply(chunks, splitStringLiteral(match[5])); }} return chunks; } function splitStringLiteral(s){ if(s==='. '){ return ['.', ' ']; }else{ return [s]; }} function buildFakeFormatString(chunks){ var parts=[]; var i; var chunk; for (i=0; i < chunks.length; i++){ chunk=chunks[i]; if(typeof chunk==='string'){ parts.push('[' + chunk + ']'); } else if(chunk.token){ if(chunk.token in specialTokens){ parts.push(SPECIAL_TOKEN_MARKER + '[' + chunk.token + ']' ); }else{ parts.push(chunk.token); }} else if(chunk.maybe){ parts.push(MAYBE_MARKER + buildFakeFormatString(chunk.maybe) + MAYBE_MARKER); }} return parts.join(PART_SEPARATOR); } function buildSameUnits(chunks){ var units=[]; var i; var chunk; var tokenInfo; for (i=0; i < chunks.length; i++){ chunk=chunks[i]; if(chunk.token){ tokenInfo=largeTokenMap[chunk.token.charAt(0)]; units.push(tokenInfo ? tokenInfo.unit:'second'); } else if(chunk.maybe){ units.push.apply(units, buildSameUnits(chunk.maybe)); }else{ units.push(null); }} return units; } function renderFakeFormatString(fakeFormatString, date){ return processMaybeMarkers(renderFakeFormatStringParts(fakeFormatString, date).join('')); } function renderFakeFormatStringParts(fakeFormatString, date){ var parts=[]; var fakeRender=moment_ext_1.oldMomentFormat(date, fakeFormatString); var fakeParts=fakeRender.split(PART_SEPARATOR); var i; var fakePart; for (i=0; i < fakeParts.length; i++){ fakePart=fakeParts[i]; if(fakePart.charAt(0)===SPECIAL_TOKEN_MARKER){ parts.push(specialTokens[fakePart.substring(1)](date)); }else{ parts.push(fakePart); }} return parts; } function processMaybeMarkers(s){ return s.replace(MAYBE_REGEXP, function (m0, m1){ if(m1.match(/[1-9]/)){ return m1; }else{ return ''; }}); } function queryMostGranularFormatUnit(formatStr){ var chunks=chunkFormatString(formatStr); var i; var chunk; var candidate; var best; for (i=0; i < chunks.length; i++){ chunk=chunks[i]; if(chunk.token){ candidate=largeTokenMap[chunk.token.charAt(0)]; if(candidate){ if(!best||candidate.value > best.value){ best=candidate; }} }} if(best){ return best.unit; } return null; } exports.queryMostGranularFormatUnit=queryMostGranularFormatUnit; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var Class_1=__webpack_require__(33); var EmitterMixin_1=__webpack_require__(11); var ListenerMixin_1=__webpack_require__(7); var Model= (function (_super){ tslib_1.__extends(Model, _super); function Model(){ var _this=_super.call(this)||this; _this._watchers={}; _this._props={}; _this.applyGlobalWatchers(); _this.constructed(); return _this; } Model.watch=function (name){ var args=[]; for (var _i=1; _i < arguments.length; _i++){ args[_i - 1]=arguments[_i]; } if(!this.prototype.hasOwnProperty('_globalWatchArgs')){ this.prototype._globalWatchArgs=Object.create(this.prototype._globalWatchArgs); } this.prototype._globalWatchArgs[name]=args; }; Model.prototype.constructed=function (){ }; Model.prototype.applyGlobalWatchers=function (){ var map=this._globalWatchArgs; var name; for (name in map){ this.watch.apply(this, [name].concat(map[name])); }}; Model.prototype.has=function (name){ return name in this._props; }; Model.prototype.get=function (name){ if(name===undefined){ return this._props; } return this._props[name]; }; Model.prototype.set=function (name, val){ var newProps; if(typeof name==='string'){ newProps={}; newProps[name]=val===undefined ? null:val; }else{ newProps=name; } this.setProps(newProps); }; Model.prototype.reset=function (newProps){ var oldProps=this._props; var changeset={}; var name; for (name in oldProps){ changeset[name]=undefined; } for (name in newProps){ changeset[name]=newProps[name]; } this.setProps(changeset); }; Model.prototype.unset=function (name){ var newProps={}; var names; var i; if(typeof name==='string'){ names=[name]; }else{ names=name; } for (i=0; i < names.length; i++){ newProps[names[i]]=undefined; } this.setProps(newProps); }; Model.prototype.setProps=function (newProps){ var changedProps={}; var changedCnt=0; var name; var val; for (name in newProps){ val=newProps[name]; if(typeof val==='object' || val!==this._props[name]){ changedProps[name]=val; changedCnt++; }} if(changedCnt){ this.trigger('before:batchChange', changedProps); for (name in changedProps){ val=changedProps[name]; this.trigger('before:change', name, val); this.trigger('before:change:' + name, val); } for (name in changedProps){ val=changedProps[name]; if(val===undefined){ delete this._props[name]; }else{ this._props[name]=val; } this.trigger('change:' + name, val); this.trigger('change', name, val); } this.trigger('batchChange', changedProps); }}; Model.prototype.watch=function (name, depList, startFunc, stopFunc){ var _this=this; this.unwatch(name); this._watchers[name]=this._watchDeps(depList, function (deps){ var res=startFunc.call(_this, deps); if(res&&res.then){ _this.unset(name); res.then(function (val){ _this.set(name, val); }); }else{ _this.set(name, res); }}, function (deps){ _this.unset(name); if(stopFunc){ stopFunc.call(_this, deps); }}); }; Model.prototype.unwatch=function (name){ var watcher=this._watchers[name]; if(watcher){ delete this._watchers[name]; watcher.teardown(); }}; Model.prototype._watchDeps=function (depList, startFunc, stopFunc){ var _this=this; var queuedChangeCnt=0; var depCnt=depList.length; var satisfyCnt=0; var values={}; var bindTuples=[]; var isCallingStop=false; var onBeforeDepChange=function (depName, val, isOptional){ queuedChangeCnt++; if(queuedChangeCnt===1){ if(satisfyCnt===depCnt){ isCallingStop=true; stopFunc(values); isCallingStop=false; }} }; var onDepChange=function (depName, val, isOptional){ if(val===undefined){ if(!isOptional&&values[depName]!==undefined){ satisfyCnt--; } delete values[depName]; }else{ if(!isOptional&&values[depName]===undefined){ satisfyCnt++; } values[depName]=val; } queuedChangeCnt--; if(!queuedChangeCnt){ if(satisfyCnt===depCnt){ if(!isCallingStop){ startFunc(values); }} }}; var bind=function (eventName, handler){ _this.on(eventName, handler); bindTuples.push([eventName, handler]); }; depList.forEach(function (depName){ var isOptional=false; if(depName.charAt(0)==='?'){ depName=depName.substring(1); isOptional=true; } bind('before:change:' + depName, function (val){ onBeforeDepChange(depName, val, isOptional); }); bind('change:' + depName, function (val){ onDepChange(depName, val, isOptional); }); }); depList.forEach(function (depName){ var isOptional=false; if(depName.charAt(0)==='?'){ depName=depName.substring(1); isOptional=true; } if(_this.has(depName)){ values[depName]=_this.get(depName); satisfyCnt++; } else if(isOptional){ satisfyCnt++; }}); if(satisfyCnt===depCnt){ startFunc(values); } return { teardown: function (){ for (var i=0; i < bindTuples.length; i++){ _this.off(bindTuples[i][0], bindTuples[i][1]); } bindTuples=null; if(satisfyCnt===depCnt){ stopFunc(); }}, flash: function (){ if(satisfyCnt===depCnt){ stopFunc(); startFunc(values); }} };}; Model.prototype.flash=function (name){ var watcher=this._watchers[name]; if(watcher){ watcher.flash(); }}; return Model; }(Class_1.default)); exports.default=Model; Model.prototype._globalWatchArgs={}; EmitterMixin_1.default.mixInto(Model); ListenerMixin_1.default.mixInto(Model); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var moment=__webpack_require__(0); var util_1=__webpack_require__(4); var SingleEventDef_1=__webpack_require__(13); var RecurringEventDef_1=__webpack_require__(210); exports.default={ parse: function (eventInput, source){ if(util_1.isTimeString(eventInput.start)||moment.isDuration(eventInput.start) || util_1.isTimeString(eventInput.end)||moment.isDuration(eventInput.end)){ return RecurringEventDef_1.default.parse(eventInput, source); }else{ return SingleEventDef_1.default.parse(eventInput, source); }} }; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var util_1=__webpack_require__(4); var EventDateProfile_1=__webpack_require__(17); var EventDefDateMutation= (function (){ function EventDefDateMutation(){ this.clearEnd=false; this.forceTimed=false; this.forceAllDay=false; } EventDefDateMutation.createFromDiff=function (dateProfile0, dateProfile1, largeUnit){ var clearEnd=dateProfile0.end&&!dateProfile1.end; var forceTimed=dateProfile0.isAllDay()&&!dateProfile1.isAllDay(); var forceAllDay = !dateProfile0.isAllDay()&&dateProfile1.isAllDay(); var dateDelta; var endDiff; var endDelta; var mutation; function subtractDates(date1, date0){ if(largeUnit){ return util_1.diffByUnit(date1, date0, largeUnit); } else if(dateProfile1.isAllDay()){ return util_1.diffDay(date1, date0); }else{ return util_1.diffDayTime(date1, date0); }} dateDelta=subtractDates(dateProfile1.start, dateProfile0.start); if(dateProfile1.end){ endDiff=subtractDates(dateProfile1.unzonedRange.getEnd(), dateProfile0.unzonedRange.getEnd()); endDelta=endDiff.subtract(dateDelta); } mutation=new EventDefDateMutation(); mutation.clearEnd=clearEnd; mutation.forceTimed=forceTimed; mutation.forceAllDay=forceAllDay; mutation.setDateDelta(dateDelta); mutation.setEndDelta(endDelta); return mutation; }; EventDefDateMutation.prototype.buildNewDateProfile=function (eventDateProfile, calendar){ var start=eventDateProfile.start.clone(); var end=null; var shouldRezone=false; if(eventDateProfile.end&&!this.clearEnd){ end=eventDateProfile.end.clone(); } else if(this.endDelta&&!end){ end=calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start); } if(this.forceTimed){ shouldRezone=true; if(!start.hasTime()){ start.time(0); } if(end&&!end.hasTime()){ end.time(0); }} else if(this.forceAllDay){ if(start.hasTime()){ start.stripTime(); } if(end&&end.hasTime()){ end.stripTime(); }} if(this.dateDelta){ shouldRezone=true; start.add(this.dateDelta); if(end){ end.add(this.dateDelta); }} if(this.endDelta){ shouldRezone=true; end.add(this.endDelta); } if(this.startDelta){ shouldRezone=true; start.add(this.startDelta); } if(shouldRezone){ start=calendar.applyTimezone(start); if(end){ end=calendar.applyTimezone(end); }} if(!end&&calendar.opt('forceEventDuration')){ end=calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start); } return new EventDateProfile_1.default(start, end, calendar); }; EventDefDateMutation.prototype.setDateDelta=function (dateDelta){ if(dateDelta&&dateDelta.valueOf()){ this.dateDelta=dateDelta; }else{ this.dateDelta=null; }}; EventDefDateMutation.prototype.setStartDelta=function (startDelta){ if(startDelta&&startDelta.valueOf()){ this.startDelta=startDelta; }else{ this.startDelta=null; }}; EventDefDateMutation.prototype.setEndDelta=function (endDelta){ if(endDelta&&endDelta.valueOf()){ this.endDelta=endDelta; }else{ this.endDelta=null; }}; EventDefDateMutation.prototype.isEmpty=function (){ return !this.clearEnd&&!this.forceTimed&&!this.forceAllDay && !this.dateDelta&&!this.startDelta&&!this.endDelta; }; return EventDefDateMutation; }()); exports.default=EventDefDateMutation; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var StandardTheme_1=__webpack_require__(213); var JqueryUiTheme_1=__webpack_require__(214); var themeClassHash={}; function defineThemeSystem(themeName, themeClass){ themeClassHash[themeName]=themeClass; } exports.defineThemeSystem=defineThemeSystem; function getThemeSystemClass(themeSetting){ if(!themeSetting){ return StandardTheme_1.default; } else if(themeSetting===true){ return JqueryUiTheme_1.default; }else{ return themeClassHash[themeSetting]; }} exports.getThemeSystemClass=getThemeSystemClass; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var Promise_1=__webpack_require__(20); var EventSource_1=__webpack_require__(6); var SingleEventDef_1=__webpack_require__(13); var ArrayEventSource= (function (_super){ tslib_1.__extends(ArrayEventSource, _super); function ArrayEventSource(calendar){ var _this=_super.call(this, calendar)||this; _this.eventDefs=[]; return _this; } ArrayEventSource.parse=function (rawInput, calendar){ var rawProps; if($.isArray(rawInput.events)){ rawProps=rawInput; } else if($.isArray(rawInput)){ rawProps={ events: rawInput };} if(rawProps){ return EventSource_1.default.parse.call(this, rawProps, calendar); } return false; }; ArrayEventSource.prototype.setRawEventDefs=function (rawEventDefs){ this.rawEventDefs=rawEventDefs; this.eventDefs=this.parseEventDefs(rawEventDefs); }; ArrayEventSource.prototype.fetch=function (start, end, timezone){ var eventDefs=this.eventDefs; var i; if(this.currentTimezone!=null && this.currentTimezone!==timezone){ for (i=0; i < eventDefs.length; i++){ if(eventDefs[i] instanceof SingleEventDef_1.default){ eventDefs[i].rezone(); }} } this.currentTimezone=timezone; return Promise_1.default.resolve(eventDefs); }; ArrayEventSource.prototype.addEventDef=function (eventDef){ this.eventDefs.push(eventDef); }; ArrayEventSource.prototype.removeEventDefsById=function (eventDefId){ return util_1.removeMatching(this.eventDefs, function (eventDef){ return eventDef.id===eventDefId; }); }; ArrayEventSource.prototype.removeAllEventDefs=function (){ this.eventDefs=[]; }; ArrayEventSource.prototype.getPrimitive=function (){ return this.rawEventDefs; }; ArrayEventSource.prototype.applyManualStandardProps=function (rawProps){ var superSuccess=_super.prototype.applyManualStandardProps.call(this, rawProps); this.setRawEventDefs(rawProps.events); return superSuccess; }; return ArrayEventSource; }(EventSource_1.default)); exports.default=ArrayEventSource; ArrayEventSource.defineStandardProps({ events: false }); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var CoordCache= (function (){ function CoordCache(options){ this.isHorizontal=false; this.isVertical=false; this.els=$(options.els); this.isHorizontal=options.isHorizontal; this.isVertical=options.isVertical; this.forcedOffsetParentEl=options.offsetParent ? $(options.offsetParent):null; } CoordCache.prototype.build=function (){ var offsetParentEl=this.forcedOffsetParentEl; if(!offsetParentEl&&this.els.length > 0){ offsetParentEl=this.els.eq(0).offsetParent(); } this.origin=offsetParentEl ? offsetParentEl.offset() : null; this.boundingRect=this.queryBoundingRect(); if(this.isHorizontal){ this.buildElHorizontals(); } if(this.isVertical){ this.buildElVerticals(); }}; CoordCache.prototype.clear=function (){ this.origin=null; this.boundingRect=null; this.lefts=null; this.rights=null; this.tops=null; this.bottoms=null; }; CoordCache.prototype.ensureBuilt=function (){ if(!this.origin){ this.build(); }}; CoordCache.prototype.buildElHorizontals=function (){ var lefts=[]; var rights=[]; this.els.each(function (i, node){ var el=$(node); var left=el.offset().left; var width=el.outerWidth(); lefts.push(left); rights.push(left + width); }); this.lefts=lefts; this.rights=rights; }; CoordCache.prototype.buildElVerticals=function (){ var tops=[]; var bottoms=[]; this.els.each(function (i, node){ var el=$(node); var top=el.offset().top; var height=el.outerHeight(); tops.push(top); bottoms.push(top + height); }); this.tops=tops; this.bottoms=bottoms; }; CoordCache.prototype.getHorizontalIndex=function (leftOffset){ this.ensureBuilt(); var lefts=this.lefts; var rights=this.rights; var len=lefts.length; var i; for (i=0; i < len; i++){ if(leftOffset >=lefts[i]&&leftOffset < rights[i]){ return i; }} }; CoordCache.prototype.getVerticalIndex=function (topOffset){ this.ensureBuilt(); var tops=this.tops; var bottoms=this.bottoms; var len=tops.length; var i; for (i=0; i < len; i++){ if(topOffset >=tops[i]&&topOffset < bottoms[i]){ return i; }} }; CoordCache.prototype.getLeftOffset=function (leftIndex){ this.ensureBuilt(); return this.lefts[leftIndex]; }; CoordCache.prototype.getLeftPosition=function (leftIndex){ this.ensureBuilt(); return this.lefts[leftIndex] - this.origin.left; }; CoordCache.prototype.getRightOffset=function (leftIndex){ this.ensureBuilt(); return this.rights[leftIndex]; }; CoordCache.prototype.getRightPosition=function (leftIndex){ this.ensureBuilt(); return this.rights[leftIndex] - this.origin.left; }; CoordCache.prototype.getWidth=function (leftIndex){ this.ensureBuilt(); return this.rights[leftIndex] - this.lefts[leftIndex]; }; CoordCache.prototype.getTopOffset=function (topIndex){ this.ensureBuilt(); return this.tops[topIndex]; }; CoordCache.prototype.getTopPosition=function (topIndex){ this.ensureBuilt(); return this.tops[topIndex] - this.origin.top; }; CoordCache.prototype.getBottomOffset=function (topIndex){ this.ensureBuilt(); return this.bottoms[topIndex]; }; CoordCache.prototype.getBottomPosition=function (topIndex){ this.ensureBuilt(); return this.bottoms[topIndex] - this.origin.top; }; CoordCache.prototype.getHeight=function (topIndex){ this.ensureBuilt(); return this.bottoms[topIndex] - this.tops[topIndex]; }; CoordCache.prototype.queryBoundingRect=function (){ var scrollParentEl; if(this.els.length > 0){ scrollParentEl=util_1.getScrollParent(this.els.eq(0)); if(!scrollParentEl.is(document)){ return util_1.getClientRect(scrollParentEl); }} return null; }; CoordCache.prototype.isPointInBounds=function (leftOffset, topOffset){ return this.isLeftInBounds(leftOffset)&&this.isTopInBounds(topOffset); }; CoordCache.prototype.isLeftInBounds=function (leftOffset){ return !this.boundingRect||(leftOffset >=this.boundingRect.left&&leftOffset < this.boundingRect.right); }; CoordCache.prototype.isTopInBounds=function (topOffset){ return !this.boundingRect||(topOffset >=this.boundingRect.top&&topOffset < this.boundingRect.bottom); }; return CoordCache; }()); exports.default=CoordCache; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var ListenerMixin_1=__webpack_require__(7); var GlobalEmitter_1=__webpack_require__(21); var DragListener= (function (){ function DragListener(options){ this.isInteracting=false; this.isDistanceSurpassed=false; this.isDelayEnded=false; this.isDragging=false; this.isTouch=false; this.isGeneric=false; this.shouldCancelTouchScroll=true; this.scrollAlwaysKills=false; this.isAutoScroll=false; this.scrollSensitivity=30; this.scrollSpeed=200; this.scrollIntervalMs=50; this.options=options||{};} DragListener.prototype.startInteraction=function (ev, extraOptions){ if(extraOptions===void 0){ extraOptions={};} if(ev.type==='mousedown'){ if(GlobalEmitter_1.default.get().shouldIgnoreMouse()){ return; } else if(!util_1.isPrimaryMouseButton(ev)){ return; }else{ ev.preventDefault(); }} if(!this.isInteracting){ this.delay=util_1.firstDefined(extraOptions.delay, this.options.delay, 0); this.minDistance=util_1.firstDefined(extraOptions.distance, this.options.distance, 0); this.subjectEl=this.options.subjectEl; util_1.preventSelection($('body')); this.isInteracting=true; this.isTouch=util_1.getEvIsTouch(ev); this.isGeneric=ev.type==='dragstart'; this.isDelayEnded=false; this.isDistanceSurpassed=false; this.originX=util_1.getEvX(ev); this.originY=util_1.getEvY(ev); this.scrollEl=util_1.getScrollParent($(ev.target)); this.bindHandlers(); this.initAutoScroll(); this.handleInteractionStart(ev); this.startDelay(ev); if(!this.minDistance){ this.handleDistanceSurpassed(ev); }} }; DragListener.prototype.handleInteractionStart=function (ev){ this.trigger('interactionStart', ev); }; DragListener.prototype.endInteraction=function (ev, isCancelled){ if(this.isInteracting){ this.endDrag(ev); if(this.delayTimeoutId){ clearTimeout(this.delayTimeoutId); this.delayTimeoutId=null; } this.destroyAutoScroll(); this.unbindHandlers(); this.isInteracting=false; this.handleInteractionEnd(ev, isCancelled); util_1.allowSelection($('body')); }}; DragListener.prototype.handleInteractionEnd=function (ev, isCancelled){ this.trigger('interactionEnd', ev, isCancelled||false); }; DragListener.prototype.bindHandlers=function (){ var globalEmitter=GlobalEmitter_1.default.get(); if(this.isGeneric){ this.listenTo($(document), { drag: this.handleMove, dragstop: this.endInteraction }); } else if(this.isTouch){ this.listenTo(globalEmitter, { touchmove: this.handleTouchMove, touchend: this.endInteraction, scroll: this.handleTouchScroll }); }else{ this.listenTo(globalEmitter, { mousemove: this.handleMouseMove, mouseup: this.endInteraction }); } this.listenTo(globalEmitter, { selectstart: util_1.preventDefault, contextmenu: util_1.preventDefault }); }; DragListener.prototype.unbindHandlers=function (){ this.stopListeningTo(GlobalEmitter_1.default.get()); this.stopListeningTo($(document)); }; DragListener.prototype.startDrag=function (ev, extraOptions){ this.startInteraction(ev, extraOptions); if(!this.isDragging){ this.isDragging=true; this.handleDragStart(ev); }}; DragListener.prototype.handleDragStart=function (ev){ this.trigger('dragStart', ev); }; DragListener.prototype.handleMove=function (ev){ var dx=util_1.getEvX(ev) - this.originX; var dy=util_1.getEvY(ev) - this.originY; var minDistance=this.minDistance; var distanceSq; if(!this.isDistanceSurpassed){ distanceSq=dx * dx + dy * dy; if(distanceSq >=minDistance * minDistance){ this.handleDistanceSurpassed(ev); }} if(this.isDragging){ this.handleDrag(dx, dy, ev); }}; DragListener.prototype.handleDrag=function (dx, dy, ev){ this.trigger('drag', dx, dy, ev); this.updateAutoScroll(ev); }; DragListener.prototype.endDrag=function (ev){ if(this.isDragging){ this.isDragging=false; this.handleDragEnd(ev); }}; DragListener.prototype.handleDragEnd=function (ev){ this.trigger('dragEnd', ev); }; DragListener.prototype.startDelay=function (initialEv){ var _this=this; if(this.delay){ this.delayTimeoutId=setTimeout(function (){ _this.handleDelayEnd(initialEv); }, this.delay); }else{ this.handleDelayEnd(initialEv); }}; DragListener.prototype.handleDelayEnd=function (initialEv){ this.isDelayEnded=true; if(this.isDistanceSurpassed){ this.startDrag(initialEv); }}; DragListener.prototype.handleDistanceSurpassed=function (ev){ this.isDistanceSurpassed=true; if(this.isDelayEnded){ this.startDrag(ev); }}; DragListener.prototype.handleTouchMove=function (ev){ if(this.isDragging&&this.shouldCancelTouchScroll){ ev.preventDefault(); } this.handleMove(ev); }; DragListener.prototype.handleMouseMove=function (ev){ this.handleMove(ev); }; DragListener.prototype.handleTouchScroll=function (ev){ if(!this.isDragging||this.scrollAlwaysKills){ this.endInteraction(ev, true); }}; DragListener.prototype.trigger=function (name){ var args=[]; for (var _i=1; _i < arguments.length; _i++){ args[_i - 1]=arguments[_i]; } if(this.options[name]){ this.options[name].apply(this, args); } if(this['_' + name]){ this['_' + name].apply(this, args); }}; DragListener.prototype.initAutoScroll=function (){ var scrollEl=this.scrollEl; this.isAutoScroll = this.options.scroll && scrollEl && !scrollEl.is(window) && !scrollEl.is(document); if(this.isAutoScroll){ this.listenTo(scrollEl, 'scroll', util_1.debounce(this.handleDebouncedScroll, 100)); }}; DragListener.prototype.destroyAutoScroll=function (){ this.endAutoScroll(); if(this.isAutoScroll){ this.stopListeningTo(this.scrollEl, 'scroll'); }}; DragListener.prototype.computeScrollBounds=function (){ if(this.isAutoScroll){ this.scrollBounds=util_1.getOuterRect(this.scrollEl); }}; DragListener.prototype.updateAutoScroll=function (ev){ var sensitivity=this.scrollSensitivity; var bounds=this.scrollBounds; var topCloseness; var bottomCloseness; var leftCloseness; var rightCloseness; var topVel=0; var leftVel=0; if(bounds){ topCloseness=(sensitivity - (util_1.getEvY(ev) - bounds.top)) / sensitivity; bottomCloseness=(sensitivity - (bounds.bottom - util_1.getEvY(ev))) / sensitivity; leftCloseness=(sensitivity - (util_1.getEvX(ev) - bounds.left)) / sensitivity; rightCloseness=(sensitivity - (bounds.right - util_1.getEvX(ev))) / sensitivity; if(topCloseness >=0&&topCloseness <=1){ topVel=topCloseness * this.scrollSpeed * -1; } else if(bottomCloseness >=0&&bottomCloseness <=1){ topVel=bottomCloseness * this.scrollSpeed; } if(leftCloseness >=0&&leftCloseness <=1){ leftVel=leftCloseness * this.scrollSpeed * -1; } else if(rightCloseness >=0&&rightCloseness <=1){ leftVel=rightCloseness * this.scrollSpeed; }} this.setScrollVel(topVel, leftVel); }; DragListener.prototype.setScrollVel=function (topVel, leftVel){ this.scrollTopVel=topVel; this.scrollLeftVel=leftVel; this.constrainScrollVel(); if((this.scrollTopVel||this.scrollLeftVel)&&!this.scrollIntervalId){ this.scrollIntervalId=setInterval(util_1.proxy(this, 'scrollIntervalFunc'), this.scrollIntervalMs); }}; DragListener.prototype.constrainScrollVel=function (){ var el=this.scrollEl; if(this.scrollTopVel < 0){ if(el.scrollTop() <=0){ this.scrollTopVel=0; }} else if(this.scrollTopVel > 0){ if(el.scrollTop() + el[0].clientHeight >=el[0].scrollHeight){ this.scrollTopVel=0; }} if(this.scrollLeftVel < 0){ if(el.scrollLeft() <=0){ this.scrollLeftVel=0; }} else if(this.scrollLeftVel > 0){ if(el.scrollLeft() + el[0].clientWidth >=el[0].scrollWidth){ this.scrollLeftVel=0; }} }; DragListener.prototype.scrollIntervalFunc=function (){ var el=this.scrollEl; var frac=this.scrollIntervalMs / 1000; if(this.scrollTopVel){ el.scrollTop(el.scrollTop() + this.scrollTopVel * frac); } if(this.scrollLeftVel){ el.scrollLeft(el.scrollLeft() + this.scrollLeftVel * frac); } this.constrainScrollVel(); if(!this.scrollTopVel&&!this.scrollLeftVel){ this.endAutoScroll(); }}; DragListener.prototype.endAutoScroll=function (){ if(this.scrollIntervalId){ clearInterval(this.scrollIntervalId); this.scrollIntervalId=null; this.handleScrollEnd(); }}; DragListener.prototype.handleDebouncedScroll=function (){ if(!this.scrollIntervalId){ this.handleScrollEnd(); }}; DragListener.prototype.handleScrollEnd=function (){ }; return DragListener; }()); exports.default=DragListener; ListenerMixin_1.default.mixInto(DragListener); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var util_1=__webpack_require__(4); var Mixin_1=__webpack_require__(14); var DayTableMixin= (function (_super){ tslib_1.__extends(DayTableMixin, _super); function DayTableMixin(){ return _super!==null&&_super.apply(this, arguments)||this; } DayTableMixin.prototype.updateDayTable=function (){ var t=this; var view=t.view; var calendar=view.calendar; var date=calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.startMs, true); var end=calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.endMs, true); var dayIndex=-1; var dayIndices=[]; var dayDates=[]; var daysPerRow; var firstDay; var rowCnt; while (date.isBefore(end)){ if(view.isHiddenDay(date)){ dayIndices.push(dayIndex + 0.5); }else{ dayIndex++; dayIndices.push(dayIndex); dayDates.push(date.clone()); } date.add(1, 'days'); } if(this.breakOnWeeks){ firstDay=dayDates[0].day(); for (daysPerRow=1; daysPerRow < dayDates.length; daysPerRow++){ if(dayDates[daysPerRow].day()===firstDay){ break; }} rowCnt=Math.ceil(dayDates.length / daysPerRow); }else{ rowCnt=1; daysPerRow=dayDates.length; } this.dayDates=dayDates; this.dayIndices=dayIndices; this.daysPerRow=daysPerRow; this.rowCnt=rowCnt; this.updateDayTableCols(); }; DayTableMixin.prototype.updateDayTableCols=function (){ this.colCnt=this.computeColCnt(); this.colHeadFormat = this.opt('columnHeaderFormat') || this.opt('columnFormat') || this.computeColHeadFormat(); }; DayTableMixin.prototype.computeColCnt=function (){ return this.daysPerRow; }; DayTableMixin.prototype.getCellDate=function (row, col){ return this.dayDates[this.getCellDayIndex(row, col)].clone(); }; DayTableMixin.prototype.getCellRange=function (row, col){ var start=this.getCellDate(row, col); var end=start.clone().add(1, 'days'); return { start: start, end: end };}; DayTableMixin.prototype.getCellDayIndex=function (row, col){ return row * this.daysPerRow + this.getColDayIndex(col); }; DayTableMixin.prototype.getColDayIndex=function (col){ if(this.isRTL){ return this.colCnt - 1 - col; }else{ return col; }}; DayTableMixin.prototype.getDateDayIndex=function (date){ var dayIndices=this.dayIndices; var dayOffset=date.diff(this.dayDates[0], 'days'); if(dayOffset < 0){ return dayIndices[0] - 1; } else if(dayOffset >=dayIndices.length){ return dayIndices[dayIndices.length - 1] + 1; }else{ return dayIndices[dayOffset]; }}; DayTableMixin.prototype.computeColHeadFormat=function (){ if(this.rowCnt > 1||this.colCnt > 10){ return 'ddd'; // "Sat" } else if(this.colCnt > 1){ return this.opt('dayOfMonthFormat'); // "Sat 12/10" }else{ return 'dddd'; // "Saturday" }}; DayTableMixin.prototype.sliceRangeByRow=function (unzonedRange){ var daysPerRow=this.daysPerRow; var normalRange=this.view.computeDayRange(unzonedRange); var rangeFirst=this.getDateDayIndex(normalRange.start); var rangeLast=this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); var segs=[]; var row; var rowFirst; var rowLast; var segFirst; var segLast; for (row=0; row < this.rowCnt; row++){ rowFirst=row * daysPerRow; rowLast=rowFirst + daysPerRow - 1; segFirst=Math.max(rangeFirst, rowFirst); segLast=Math.min(rangeLast, rowLast); segFirst=Math.ceil(segFirst); segLast=Math.floor(segLast); if(segFirst <=segLast){ segs.push({ row: row, firstRowDayIndex: segFirst - rowFirst, lastRowDayIndex: segLast - rowFirst, isStart: segFirst===rangeFirst, isEnd: segLast===rangeLast }); }} return segs; }; DayTableMixin.prototype.sliceRangeByDay=function (unzonedRange){ var daysPerRow=this.daysPerRow; var normalRange=this.view.computeDayRange(unzonedRange); var rangeFirst=this.getDateDayIndex(normalRange.start); var rangeLast=this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); var segs=[]; var row; var rowFirst; var rowLast; var i; var segFirst; var segLast; for (row=0; row < this.rowCnt; row++){ rowFirst=row * daysPerRow; rowLast=rowFirst + daysPerRow - 1; for (i=rowFirst; i <=rowLast; i++){ segFirst=Math.max(rangeFirst, i); segLast=Math.min(rangeLast, i); segFirst=Math.ceil(segFirst); segLast=Math.floor(segLast); if(segFirst <=segLast){ segs.push({ row: row, firstRowDayIndex: segFirst - rowFirst, lastRowDayIndex: segLast - rowFirst, isStart: segFirst===rangeFirst, isEnd: segLast===rangeLast }); }} } return segs; }; DayTableMixin.prototype.renderHeadHtml=function (){ var theme=this.view.calendar.theme; return '' + '
' + '' + '' + this.renderHeadTrHtml() + '' + '
' + '
'; }; DayTableMixin.prototype.renderHeadIntroHtml=function (){ return this.renderIntroHtml(); }; DayTableMixin.prototype.renderHeadTrHtml=function (){ return '' + '' + (this.isRTL ? '':this.renderHeadIntroHtml()) + this.renderHeadDateCellsHtml() + (this.isRTL ? this.renderHeadIntroHtml():'') + ''; }; DayTableMixin.prototype.renderHeadDateCellsHtml=function (){ var htmls=[]; var col; var date; for (col=0; col < this.colCnt; col++){ date=this.getCellDate(0, col); htmls.push(this.renderHeadDateCellHtml(date)); } return htmls.join(''); }; DayTableMixin.prototype.renderHeadDateCellHtml=function (date, colspan, otherAttrs){ var t=this; var view=t.view; var isDateValid=t.dateProfile.activeUnzonedRange.containsDate(date); var classNames=[ 'fc-day-header', view.calendar.theme.getClass('widgetHeader') ]; var innerHtml; if(typeof t.opt('columnHeaderHtml')==='function'){ innerHtml=t.opt('columnHeaderHtml')(date); } else if(typeof t.opt('columnHeaderText')==='function'){ innerHtml=util_1.htmlEscape(t.opt('columnHeaderText')(date)); }else{ innerHtml=util_1.htmlEscape(date.format(t.colHeadFormat)); } if(t.rowCnt===1){ classNames=classNames.concat(t.getDayClasses(date, true)); }else{ classNames.push('fc-' + util_1.dayIDs[date.day()]); } return '' + ' 1 ? ' colspan="' + colspan + '"' : '') + (otherAttrs ? ' ' + otherAttrs : '') + '>' + (isDateValid ? view.buildGotoAnchorHtml({ date: date, forceOff: t.rowCnt > 1||t.colCnt===1 }, innerHtml) : innerHtml) + ''; }; DayTableMixin.prototype.renderBgTrHtml=function (row){ return '' + '' + (this.isRTL ? '':this.renderBgIntroHtml(row)) + this.renderBgCellsHtml(row) + (this.isRTL ? this.renderBgIntroHtml(row):'') + ''; }; DayTableMixin.prototype.renderBgIntroHtml=function (row){ return this.renderIntroHtml(); }; DayTableMixin.prototype.renderBgCellsHtml=function (row){ var htmls=[]; var col; var date; for (col=0; col < this.colCnt; col++){ date=this.getCellDate(row, col); htmls.push(this.renderBgCellHtml(date)); } return htmls.join(''); }; DayTableMixin.prototype.renderBgCellHtml=function (date, otherAttrs){ var t=this; var view=t.view; var isDateValid=t.dateProfile.activeUnzonedRange.containsDate(date); var classes=t.getDayClasses(date); classes.unshift('fc-day', view.calendar.theme.getClass('widgetContent')); return ''; }; DayTableMixin.prototype.renderIntroHtml=function (){ }; DayTableMixin.prototype.bookendCells=function (trEl){ var introHtml=this.renderIntroHtml(); if(introHtml){ if(this.isRTL){ trEl.append(introHtml); }else{ trEl.prepend(introHtml); }} }; return DayTableMixin; }(Mixin_1.default)); exports.default=DayTableMixin; }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); var BusinessHourRenderer= (function (){ function BusinessHourRenderer(component, fillRenderer){ this.component=component; this.fillRenderer=fillRenderer; } BusinessHourRenderer.prototype.render=function (businessHourGenerator){ var component=this.component; var unzonedRange=component._getDateProfile().activeUnzonedRange; var eventInstanceGroup=businessHourGenerator.buildEventInstanceGroup(component.hasAllDayBusinessHours, unzonedRange); var eventFootprints=eventInstanceGroup ? component.eventRangesToEventFootprints(eventInstanceGroup.sliceRenderRanges(unzonedRange)) : []; this.renderEventFootprints(eventFootprints); }; BusinessHourRenderer.prototype.renderEventFootprints=function (eventFootprints){ var segs=this.component.eventFootprintsToSegs(eventFootprints); this.renderSegs(segs); this.segs=segs; }; BusinessHourRenderer.prototype.renderSegs=function (segs){ if(this.fillRenderer){ this.fillRenderer.renderSegs('businessHours', segs, { getClasses: function (seg){ return ['fc-nonbusiness', 'fc-bgevent']; }}); }}; BusinessHourRenderer.prototype.unrender=function (){ if(this.fillRenderer){ this.fillRenderer.unrender('businessHours'); } this.segs=null; }; BusinessHourRenderer.prototype.getSegs=function (){ return this.segs||[]; }; return BusinessHourRenderer; }()); exports.default=BusinessHourRenderer; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var FillRenderer= (function (){ function FillRenderer(component){ this.fillSegTag='div'; this.component=component; this.elsByFill={};} FillRenderer.prototype.renderFootprint=function (type, componentFootprint, props){ this.renderSegs(type, this.component.componentFootprintToSegs(componentFootprint), props); }; FillRenderer.prototype.renderSegs=function (type, segs, props){ var els; segs=this.buildSegEls(type, segs, props); els=this.attachSegEls(type, segs); if(els){ this.reportEls(type, els); } return segs; }; FillRenderer.prototype.unrender=function (type){ var el=this.elsByFill[type]; if(el){ el.remove(); delete this.elsByFill[type]; }}; FillRenderer.prototype.buildSegEls=function (type, segs, props){ var _this=this; var html=''; var renderedSegs=[]; var i; if(segs.length){ for (i=0; i < segs.length; i++){ html +=this.buildSegHtml(type, segs[i], props); } $(html).each(function (i, node){ var seg=segs[i]; var el=$(node); if(props.filterEl){ el=props.filterEl(seg, el); } if(el){ el=$(el); if(el.is(_this.fillSegTag)){ seg.el=el; renderedSegs.push(seg); }} }); } return renderedSegs; }; FillRenderer.prototype.buildSegHtml=function (type, seg, props){ var classes=props.getClasses ? props.getClasses(seg):[]; var css=util_1.cssToStr(props.getCss ? props.getCss(seg):{}); return '<' + this.fillSegTag + (classes.length ? ' class="' + classes.join(' ') + '"':'') + (css ? ' style="' + css + '"':'') + ' />'; }; FillRenderer.prototype.attachSegEls=function (type, segs){ }; FillRenderer.prototype.reportEls=function (type, nodes){ if(this.elsByFill[type]){ this.elsByFill[type]=this.elsByFill[type].add(nodes); }else{ this.elsByFill[type]=$(nodes); }}; return FillRenderer; }()); exports.default=FillRenderer; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var SingleEventDef_1=__webpack_require__(13); var EventFootprint_1=__webpack_require__(36); var EventSource_1=__webpack_require__(6); var HelperRenderer= (function (){ function HelperRenderer(component, eventRenderer){ this.view=component._getView(); this.component=component; this.eventRenderer=eventRenderer; } HelperRenderer.prototype.renderComponentFootprint=function (componentFootprint){ this.renderEventFootprints([ this.fabricateEventFootprint(componentFootprint) ]); }; HelperRenderer.prototype.renderEventDraggingFootprints=function (eventFootprints, sourceSeg, isTouch){ this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-dragging', isTouch ? null:this.view.opt('dragOpacity')); }; HelperRenderer.prototype.renderEventResizingFootprints=function (eventFootprints, sourceSeg, isTouch){ this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-resizing'); }; HelperRenderer.prototype.renderEventFootprints=function (eventFootprints, sourceSeg, extraClassNames, opacity){ var segs=this.component.eventFootprintsToSegs(eventFootprints); var classNames='fc-helper ' + (extraClassNames||''); var i; segs=this.eventRenderer.renderFgSegEls(segs); for (i=0; i < segs.length; i++){ segs[i].el.addClass(classNames); } if(opacity!=null){ for (i=0; i < segs.length; i++){ segs[i].el.css('opacity', opacity); }} this.helperEls=this.renderSegs(segs, sourceSeg); }; HelperRenderer.prototype.renderSegs=function (segs, sourceSeg){ }; HelperRenderer.prototype.unrender=function (){ if(this.helperEls){ this.helperEls.remove(); this.helperEls=null; }}; HelperRenderer.prototype.fabricateEventFootprint=function (componentFootprint){ var calendar=this.view.calendar; var eventDateProfile=calendar.footprintToDateProfile(componentFootprint); var dummyEvent=new SingleEventDef_1.default(new EventSource_1.default(calendar)); var dummyInstance; dummyEvent.dateProfile=eventDateProfile; dummyInstance=dummyEvent.buildInstance(); return new EventFootprint_1.default(componentFootprint, dummyEvent, dummyInstance); }; return HelperRenderer; }()); exports.default=HelperRenderer; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var GlobalEmitter_1=__webpack_require__(21); var Interaction_1=__webpack_require__(15); var EventPointing= (function (_super){ tslib_1.__extends(EventPointing, _super); function EventPointing(){ return _super!==null&&_super.apply(this, arguments)||this; } EventPointing.prototype.bindToEl=function (el){ var component=this.component; component.bindSegHandlerToEl(el, 'click', this.handleClick.bind(this)); component.bindSegHandlerToEl(el, 'mouseenter', this.handleMouseover.bind(this)); component.bindSegHandlerToEl(el, 'mouseleave', this.handleMouseout.bind(this)); }; EventPointing.prototype.handleClick=function (seg, ev){ var res=this.component.publiclyTrigger('eventClick', { context: seg.el[0], args: [seg.footprint.getEventLegacy(), ev, this.view] }); if(res===false){ ev.preventDefault(); }}; EventPointing.prototype.handleMouseover=function (seg, ev){ if(!GlobalEmitter_1.default.get().shouldIgnoreMouse() && !this.mousedOverSeg){ this.mousedOverSeg=seg; if(this.view.isEventDefResizable(seg.footprint.eventDef)){ seg.el.addClass('fc-allow-mouse-resize'); } this.component.publiclyTrigger('eventMouseover', { context: seg.el[0], args: [seg.footprint.getEventLegacy(), ev, this.view] }); }}; EventPointing.prototype.handleMouseout=function (seg, ev){ if(this.mousedOverSeg){ this.mousedOverSeg=null; if(this.view.isEventDefResizable(seg.footprint.eventDef)){ seg.el.removeClass('fc-allow-mouse-resize'); } this.component.publiclyTrigger('eventMouseout', { context: seg.el[0], args: [ seg.footprint.getEventLegacy(), ev||{}, this.view ] }); }}; EventPointing.prototype.end=function (){ if(this.mousedOverSeg){ this.handleMouseout(this.mousedOverSeg); }}; return EventPointing; }(Interaction_1.default)); exports.default=EventPointing; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var Mixin_1=__webpack_require__(14); var DateClicking_1=__webpack_require__(245); var DateSelecting_1=__webpack_require__(225); var EventPointing_1=__webpack_require__(59); var EventDragging_1=__webpack_require__(224); var EventResizing_1=__webpack_require__(223); var ExternalDropping_1=__webpack_require__(222); var StandardInteractionsMixin= (function (_super){ tslib_1.__extends(StandardInteractionsMixin, _super); function StandardInteractionsMixin(){ return _super!==null&&_super.apply(this, arguments)||this; } return StandardInteractionsMixin; }(Mixin_1.default)); exports.default=StandardInteractionsMixin; StandardInteractionsMixin.prototype.dateClickingClass=DateClicking_1.default; StandardInteractionsMixin.prototype.dateSelectingClass=DateSelecting_1.default; StandardInteractionsMixin.prototype.eventPointingClass=EventPointing_1.default; StandardInteractionsMixin.prototype.eventDraggingClass=EventDragging_1.default; StandardInteractionsMixin.prototype.eventResizingClass=EventResizing_1.default; StandardInteractionsMixin.prototype.externalDroppingClass=ExternalDropping_1.default; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var CoordCache_1=__webpack_require__(53); var Popover_1=__webpack_require__(249); var UnzonedRange_1=__webpack_require__(5); var ComponentFootprint_1=__webpack_require__(12); var EventFootprint_1=__webpack_require__(36); var BusinessHourRenderer_1=__webpack_require__(56); var StandardInteractionsMixin_1=__webpack_require__(60); var InteractiveDateComponent_1=__webpack_require__(40); var DayTableMixin_1=__webpack_require__(55); var DayGridEventRenderer_1=__webpack_require__(250); var DayGridHelperRenderer_1=__webpack_require__(251); var DayGridFillRenderer_1=__webpack_require__(252); var DayGrid= (function (_super){ tslib_1.__extends(DayGrid, _super); function DayGrid(view){ var _this=_super.call(this, view)||this; _this.cellWeekNumbersVisible=false; _this.bottomCoordPadding=0; _this.isRigid=false; _this.hasAllDayBusinessHours=true; return _this; } DayGrid.prototype.componentFootprintToSegs=function (componentFootprint){ var segs=this.sliceRangeByRow(componentFootprint.unzonedRange); var i; var seg; for (i=0; i < segs.length; i++){ seg=segs[i]; if(this.isRTL){ seg.leftCol=this.daysPerRow - 1 - seg.lastRowDayIndex; seg.rightCol=this.daysPerRow - 1 - seg.firstRowDayIndex; }else{ seg.leftCol=seg.firstRowDayIndex; seg.rightCol=seg.lastRowDayIndex; }} return segs; }; DayGrid.prototype.renderDates=function (dateProfile){ this.dateProfile=dateProfile; this.updateDayTable(); this.renderGrid(); }; DayGrid.prototype.unrenderDates=function (){ this.removeSegPopover(); }; DayGrid.prototype.renderGrid=function (){ var view=this.view; var rowCnt=this.rowCnt; var colCnt=this.colCnt; var html=''; var row; var col; if(this.headContainerEl){ this.headContainerEl.html(this.renderHeadHtml()); } for (row=0; row < rowCnt; row++){ html +=this.renderDayRowHtml(row, this.isRigid); } this.el.html(html); this.rowEls=this.el.find('.fc-row'); this.cellEls=this.el.find('.fc-day, .fc-disabled-day'); this.rowCoordCache=new CoordCache_1.default({ els: this.rowEls, isVertical: true }); this.colCoordCache=new CoordCache_1.default({ els: this.cellEls.slice(0, this.colCnt), isHorizontal: true }); for (row=0; row < rowCnt; row++){ for (col=0; col < colCnt; col++){ this.publiclyTrigger('dayRender', { context: view, args: [ this.getCellDate(row, col), this.getCellEl(row, col), view ] }); }} }; DayGrid.prototype.renderDayRowHtml=function (row, isRigid){ var theme=this.view.calendar.theme; var classes=['fc-row', 'fc-week', theme.getClass('dayRow')]; if(isRigid){ classes.push('fc-rigid'); } return '' + '
' + '
' + '' + this.renderBgTrHtml(row) + '
' + '
' + '
' + '' + (this.getIsNumbersVisible() ? '' + this.renderNumberTrHtml(row) + '' : '') + '
' + '
' + '
'; }; DayGrid.prototype.getIsNumbersVisible=function (){ return this.getIsDayNumbersVisible()||this.cellWeekNumbersVisible; }; DayGrid.prototype.getIsDayNumbersVisible=function (){ return this.rowCnt > 1; }; DayGrid.prototype.renderNumberTrHtml=function (row){ return '' + '' + (this.isRTL ? '':this.renderNumberIntroHtml(row)) + this.renderNumberCellsHtml(row) + (this.isRTL ? this.renderNumberIntroHtml(row):'') + ''; }; DayGrid.prototype.renderNumberIntroHtml=function (row){ return this.renderIntroHtml(); }; DayGrid.prototype.renderNumberCellsHtml=function (row){ var htmls=[]; var col; var date; for (col=0; col < this.colCnt; col++){ date=this.getCellDate(row, col); htmls.push(this.renderNumberCellHtml(date)); } return htmls.join(''); }; DayGrid.prototype.renderNumberCellHtml=function (date){ var view=this.view; var html=''; var isDateValid=this.dateProfile.activeUnzonedRange.containsDate(date); var isDayNumberVisible=this.getIsDayNumbersVisible()&&isDateValid; var classes; var weekCalcFirstDoW; if(!isDayNumberVisible&&!this.cellWeekNumbersVisible){ return ''; } classes=this.getDayClasses(date); classes.unshift('fc-day-top'); if(this.cellWeekNumbersVisible){ if(date._locale._fullCalendar_weekCalc==='ISO'){ weekCalcFirstDoW=1; }else{ weekCalcFirstDoW=date._locale.firstDayOfWeek(); }} html +=''; if(this.cellWeekNumbersVisible&&(date.day()===weekCalcFirstDoW)){ html +=view.buildGotoAnchorHtml({ date: date, type: 'week' }, { 'class': 'fc-week-number' }, date.format('w') ); } if(isDayNumberVisible){ html +=view.buildGotoAnchorHtml(date, { 'class': 'fc-day-number' }, date.format('D') ); } html +=''; return html; }; DayGrid.prototype.prepareHits=function (){ this.colCoordCache.build(); this.rowCoordCache.build(); this.rowCoordCache.bottoms[this.rowCnt - 1] +=this.bottomCoordPadding; }; DayGrid.prototype.releaseHits=function (){ this.colCoordCache.clear(); this.rowCoordCache.clear(); }; DayGrid.prototype.queryHit=function (leftOffset, topOffset){ if(this.colCoordCache.isLeftInBounds(leftOffset)&&this.rowCoordCache.isTopInBounds(topOffset)){ var col=this.colCoordCache.getHorizontalIndex(leftOffset); var row=this.rowCoordCache.getVerticalIndex(topOffset); if(row!=null&&col!=null){ return this.getCellHit(row, col); }} }; DayGrid.prototype.getHitFootprint=function (hit){ var range=this.getCellRange(hit.row, hit.col); return new ComponentFootprint_1.default(new UnzonedRange_1.default(range.start, range.end), true ); }; DayGrid.prototype.getHitEl=function (hit){ return this.getCellEl(hit.row, hit.col); }; DayGrid.prototype.getCellHit=function (row, col){ return { row: row, col: col, component: this, left: this.colCoordCache.getLeftOffset(col), right: this.colCoordCache.getRightOffset(col), top: this.rowCoordCache.getTopOffset(row), bottom: this.rowCoordCache.getBottomOffset(row) };}; DayGrid.prototype.getCellEl=function (row, col){ return this.cellEls.eq(row * this.colCnt + col); }; DayGrid.prototype.executeEventUnrender=function (){ this.removeSegPopover(); _super.prototype.executeEventUnrender.call(this); }; DayGrid.prototype.getOwnEventSegs=function (){ return _super.prototype.getOwnEventSegs.call(this).concat(this.popoverSegs||[]); }; DayGrid.prototype.renderDrag=function (eventFootprints, seg, isTouch){ var i; for (i=0; i < eventFootprints.length; i++){ this.renderHighlight(eventFootprints[i].componentFootprint); } if(eventFootprints.length&&seg&&seg.component!==this){ this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch); return true; }}; DayGrid.prototype.unrenderDrag=function (){ this.unrenderHighlight(); this.helperRenderer.unrender(); }; DayGrid.prototype.renderEventResize=function (eventFootprints, seg, isTouch){ var i; for (i=0; i < eventFootprints.length; i++){ this.renderHighlight(eventFootprints[i].componentFootprint); } this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch); }; DayGrid.prototype.unrenderEventResize=function (){ this.unrenderHighlight(); this.helperRenderer.unrender(); }; DayGrid.prototype.removeSegPopover=function (){ if(this.segPopover){ this.segPopover.hide(); }}; DayGrid.prototype.limitRows=function (levelLimit){ var rowStructs=this.eventRenderer.rowStructs||[]; var row; var rowLevelLimit; for (row=0; row < rowStructs.length; row++){ this.unlimitRow(row); if(!levelLimit){ rowLevelLimit=false; } else if(typeof levelLimit==='number'){ rowLevelLimit=levelLimit; }else{ rowLevelLimit=this.computeRowLevelLimit(row); } if(rowLevelLimit!==false){ this.limitRow(row, rowLevelLimit); }} }; DayGrid.prototype.computeRowLevelLimit=function (row){ var rowEl=this.rowEls.eq(row); var rowHeight=rowEl.height(); var trEls=this.eventRenderer.rowStructs[row].tbodyEl.children(); var i; var trEl; var trHeight; function iterInnerHeights(i, childNode){ trHeight=Math.max(trHeight, $(childNode).outerHeight()); } for (i=0; i < trEls.length; i++){ trEl=trEls.eq(i).removeClass('fc-limited'); trHeight=0; trEl.find('> td > :first-child').each(iterInnerHeights); if(trEl.position().top + trHeight > rowHeight){ return i; }} return false; }; DayGrid.prototype.limitRow=function (row, levelLimit){ var _this=this; var rowStruct=this.eventRenderer.rowStructs[row]; var moreNodes=[]; var col=0; var levelSegs; var cellMatrix; var limitedNodes; var i; var seg; var segsBelow; var totalSegsBelow; var colSegsBelow; var td; var rowspan; var segMoreNodes; var j; var moreTd; var moreWrap; var moreLink; var emptyCellsUntil=function (endCol){ while (col < endCol){ segsBelow=_this.getCellSegs(row, col, levelLimit); if(segsBelow.length){ td=cellMatrix[levelLimit - 1][col]; moreLink=_this.renderMoreLink(row, col, segsBelow); moreWrap=$('
').append(moreLink); td.append(moreWrap); moreNodes.push(moreWrap[0]); } col++; }}; if(levelLimit&&levelLimit < rowStruct.segLevels.length){ levelSegs=rowStruct.segLevels[levelLimit - 1]; cellMatrix=rowStruct.cellMatrix; limitedNodes=rowStruct.tbodyEl.children().slice(levelLimit) .addClass('fc-limited').get(); for (i=0; i < levelSegs.length; i++){ seg=levelSegs[i]; emptyCellsUntil(seg.leftCol); colSegsBelow=[]; totalSegsBelow=0; while (col <=seg.rightCol){ segsBelow=this.getCellSegs(row, col, levelLimit); colSegsBelow.push(segsBelow); totalSegsBelow +=segsBelow.length; col++; } if(totalSegsBelow){ td=cellMatrix[levelLimit - 1][seg.leftCol]; rowspan=td.attr('rowspan')||1; segMoreNodes=[]; for (j=0; j < colSegsBelow.length; j++){ moreTd=$('').attr('rowspan', rowspan); segsBelow=colSegsBelow[j]; moreLink=this.renderMoreLink(row, seg.leftCol + j, [seg].concat(segsBelow) ); moreWrap=$('
').append(moreLink); moreTd.append(moreWrap); segMoreNodes.push(moreTd[0]); moreNodes.push(moreTd[0]); } td.addClass('fc-limited').after($(segMoreNodes)); limitedNodes.push(td[0]); }} emptyCellsUntil(this.colCnt); rowStruct.moreEls=$(moreNodes); rowStruct.limitedEls=$(limitedNodes); }}; DayGrid.prototype.unlimitRow=function (row){ var rowStruct=this.eventRenderer.rowStructs[row]; if(rowStruct.moreEls){ rowStruct.moreEls.remove(); rowStruct.moreEls=null; } if(rowStruct.limitedEls){ rowStruct.limitedEls.removeClass('fc-limited'); rowStruct.limitedEls=null; }}; DayGrid.prototype.renderMoreLink=function (row, col, hiddenSegs){ var _this=this; var view=this.view; return $('') .text(this.getMoreLinkText(hiddenSegs.length)) .on('click', function (ev){ var clickOption=_this.opt('eventLimitClick'); var date=_this.getCellDate(row, col); var moreEl=$(ev.currentTarget); var dayEl=_this.getCellEl(row, col); var allSegs=_this.getCellSegs(row, col); var reslicedAllSegs=_this.resliceDaySegs(allSegs, date); var reslicedHiddenSegs=_this.resliceDaySegs(hiddenSegs, date); if(typeof clickOption==='function'){ clickOption=_this.publiclyTrigger('eventLimitClick', { context: view, args: [ { date: date.clone(), dayEl: dayEl, moreEl: moreEl, segs: reslicedAllSegs, hiddenSegs: reslicedHiddenSegs }, ev, view ] }); } if(clickOption==='popover'){ _this.showSegPopover(row, col, moreEl, reslicedAllSegs); } else if(typeof clickOption==='string'){ view.calendar.zoomTo(date, clickOption); }}); }; DayGrid.prototype.showSegPopover=function (row, col, moreLink, segs){ var _this=this; var view=this.view; var moreWrap=moreLink.parent(); var topEl; var options; if(this.rowCnt===1){ topEl=view.el; }else{ topEl=this.rowEls.eq(row); } options={ className: 'fc-more-popover ' + view.calendar.theme.getClass('popover'), content: this.renderSegPopoverContent(row, col, segs), parentEl: view.el, top: topEl.offset().top, autoHide: true, viewportConstrain: this.opt('popoverViewportConstrain'), hide: function (){ if(_this.popoverSegs){ _this.triggerBeforeEventSegsDestroyed(_this.popoverSegs); } _this.segPopover.removeElement(); _this.segPopover=null; _this.popoverSegs=null; }}; if(this.isRTL){ options.right=moreWrap.offset().left + moreWrap.outerWidth() + 1; }else{ options.left=moreWrap.offset().left - 1; } this.segPopover=new Popover_1.default(options); this.segPopover.show(); this.bindAllSegHandlersToEl(this.segPopover.el); this.triggerAfterEventSegsRendered(segs); }; DayGrid.prototype.renderSegPopoverContent=function (row, col, segs){ var view=this.view; var theme=view.calendar.theme; var title=this.getCellDate(row, col).format(this.opt('dayPopoverFormat')); var content=$('
' + '' + '' + util_1.htmlEscape(title) + '' + '
' + '
' + '
' + '
' + '
'); var segContainer=content.find('.fc-event-container'); var i; segs=this.eventRenderer.renderFgSegEls(segs, true); this.popoverSegs=segs; for (i=0; i < segs.length; i++){ this.hitsNeeded(); segs[i].hit=this.getCellHit(row, col); this.hitsNotNeeded(); segContainer.append(segs[i].el); } return content; }; DayGrid.prototype.resliceDaySegs=function (segs, dayDate){ var dayStart=dayDate.clone(); var dayEnd=dayStart.clone().add(1, 'days'); var dayRange=new UnzonedRange_1.default(dayStart, dayEnd); var newSegs=[]; var i; var seg; var slicedRange; for (i=0; i < segs.length; i++){ seg=segs[i]; slicedRange=seg.footprint.componentFootprint.unzonedRange.intersect(dayRange); if(slicedRange){ newSegs.push($.extend({}, seg, { footprint: new EventFootprint_1.default(new ComponentFootprint_1.default(slicedRange, seg.footprint.componentFootprint.isAllDay), seg.footprint.eventDef, seg.footprint.eventInstance), isStart: seg.isStart&&slicedRange.isStart, isEnd: seg.isEnd&&slicedRange.isEnd })); }} this.eventRenderer.sortEventSegs(newSegs); return newSegs; }; DayGrid.prototype.getMoreLinkText=function (num){ var opt=this.opt('eventLimitText'); if(typeof opt==='function'){ return opt(num); }else{ return '+' + num + ' ' + opt; }}; DayGrid.prototype.getCellSegs=function (row, col, startLevel){ var segMatrix=this.eventRenderer.rowStructs[row].segMatrix; var level=startLevel||0; var segs=[]; var seg; while (level < segMatrix.length){ seg=segMatrix[level][col]; if(seg){ segs.push(seg); } level++; } return segs; }; return DayGrid; }(InteractiveDateComponent_1.default)); exports.default=DayGrid; DayGrid.prototype.eventRendererClass=DayGridEventRenderer_1.default; DayGrid.prototype.businessHourRendererClass=BusinessHourRenderer_1.default; DayGrid.prototype.helperRendererClass=DayGridHelperRenderer_1.default; DayGrid.prototype.fillRendererClass=DayGridFillRenderer_1.default; StandardInteractionsMixin_1.default.mixInto(DayGrid); DayTableMixin_1.default.mixInto(DayGrid); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var Scroller_1=__webpack_require__(39); var View_1=__webpack_require__(41); var BasicViewDateProfileGenerator_1=__webpack_require__(228); var DayGrid_1=__webpack_require__(61); var BasicView= (function (_super){ tslib_1.__extends(BasicView, _super); function BasicView(calendar, viewSpec){ var _this=_super.call(this, calendar, viewSpec)||this; _this.dayGrid=_this.instantiateDayGrid(); _this.dayGrid.isRigid=_this.hasRigidRows(); if(_this.opt('weekNumbers')){ if(_this.opt('weekNumbersWithinDays')){ _this.dayGrid.cellWeekNumbersVisible=true; _this.dayGrid.colWeekNumbersVisible=false; }else{ _this.dayGrid.cellWeekNumbersVisible=false; _this.dayGrid.colWeekNumbersVisible=true; }} _this.addChild(_this.dayGrid); _this.scroller=new Scroller_1.default({ overflowX: 'hidden', overflowY: 'auto' }); return _this; } BasicView.prototype.instantiateDayGrid=function (){ var subclass=makeDayGridSubclass(this.dayGridClass); return new subclass(this); }; BasicView.prototype.executeDateRender=function (dateProfile){ this.dayGrid.breakOnWeeks=/year|month|week/.test(dateProfile.currentRangeUnit); _super.prototype.executeDateRender.call(this, dateProfile); }; BasicView.prototype.renderSkeleton=function (){ var dayGridContainerEl; var dayGridEl; this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml()); this.scroller.render(); dayGridContainerEl=this.scroller.el.addClass('fc-day-grid-container'); dayGridEl=$('
').appendTo(dayGridContainerEl); this.el.find('.fc-body > tr > td').append(dayGridContainerEl); this.dayGrid.headContainerEl=this.el.find('.fc-head-container'); this.dayGrid.setElement(dayGridEl); }; BasicView.prototype.unrenderSkeleton=function (){ this.dayGrid.removeElement(); this.scroller.destroy(); }; BasicView.prototype.renderSkeletonHtml=function (){ var theme=this.calendar.theme; return '' + '' + (this.opt('columnHeader') ? '' + '' + '' + '' + '' : '') + '' + '' + '' + '' + '' + '
 
'; }; BasicView.prototype.weekNumberStyleAttr=function (){ if(this.weekNumberWidth!=null){ return 'style="width:' + this.weekNumberWidth + 'px"'; } return ''; }; BasicView.prototype.hasRigidRows=function (){ var eventLimit=this.opt('eventLimit'); return eventLimit&&typeof eventLimit!=='number'; }; BasicView.prototype.updateSize=function (totalHeight, isAuto, isResize){ var eventLimit=this.opt('eventLimit'); var headRowEl=this.dayGrid.headContainerEl.find('.fc-row'); var scrollerHeight; var scrollbarWidths; if(!this.dayGrid.rowEls){ if(!isAuto){ scrollerHeight=this.computeScrollerHeight(totalHeight); this.scroller.setHeight(scrollerHeight); } return; } _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); if(this.dayGrid.colWeekNumbersVisible){ this.weekNumberWidth=util_1.matchCellWidths(this.el.find('.fc-week-number')); } this.scroller.clear(); util_1.uncompensateScroll(headRowEl); this.dayGrid.removeSegPopover(); if(eventLimit&&typeof eventLimit==='number'){ this.dayGrid.limitRows(eventLimit); } scrollerHeight=this.computeScrollerHeight(totalHeight); this.setGridHeight(scrollerHeight, isAuto); if(eventLimit&&typeof eventLimit!=='number'){ this.dayGrid.limitRows(eventLimit); } if(!isAuto){ this.scroller.setHeight(scrollerHeight); scrollbarWidths=this.scroller.getScrollbarWidths(); if(scrollbarWidths.left||scrollbarWidths.right){ util_1.compensateScroll(headRowEl, scrollbarWidths); scrollerHeight=this.computeScrollerHeight(totalHeight); this.scroller.setHeight(scrollerHeight); } this.scroller.lockOverflow(scrollbarWidths); }}; BasicView.prototype.computeScrollerHeight=function (totalHeight){ return totalHeight - util_1.subtractInnerElHeight(this.el, this.scroller.el); }; BasicView.prototype.setGridHeight=function (height, isAuto){ if(isAuto){ util_1.undistributeHeight(this.dayGrid.rowEls); }else{ util_1.distributeHeight(this.dayGrid.rowEls, height, true); }}; BasicView.prototype.computeInitialDateScroll=function (){ return { top: 0 };}; BasicView.prototype.queryDateScroll=function (){ return { top: this.scroller.getScrollTop() };}; BasicView.prototype.applyDateScroll=function (scroll){ if(scroll.top!==undefined){ this.scroller.setScrollTop(scroll.top); }}; return BasicView; }(View_1.default)); exports.default=BasicView; BasicView.prototype.dateProfileGeneratorClass=BasicViewDateProfileGenerator_1.default; BasicView.prototype.dayGridClass=DayGrid_1.default; function makeDayGridSubclass(SuperClass){ return (function (_super){ tslib_1.__extends(SubClass, _super); function SubClass(){ var _this=_super!==null&&_super.apply(this, arguments)||this; _this.colWeekNumbersVisible=false; return _this; } SubClass.prototype.renderHeadIntroHtml=function (){ var view=this.view; if(this.colWeekNumbersVisible){ return '' + '' + '' + util_1.htmlEscape(this.opt('weekNumberTitle')) + '' + ''; } return ''; }; SubClass.prototype.renderNumberIntroHtml=function (row){ var view=this.view; var weekStart=this.getCellDate(row, 0); if(this.colWeekNumbersVisible){ return '' + '' + view.buildGotoAnchorHtml({ date: weekStart, type: 'week', forceOff: this.colCnt===1 }, weekStart.format('w') ) + ''; } return ''; }; SubClass.prototype.renderBgIntroHtml=function (){ var view=this.view; if(this.colWeekNumbersVisible){ return ''; } return ''; }; SubClass.prototype.renderIntroHtml=function (){ var view=this.view; if(this.colWeekNumbersVisible){ return ''; } return ''; }; SubClass.prototype.getIsNumbersVisible=function (){ return DayGrid_1.default.prototype.getIsNumbersVisible.apply(this, arguments)||this.colWeekNumbersVisible; }; return SubClass; }(SuperClass)); } }), , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var UnzonedRange_1=__webpack_require__(5); var ComponentFootprint_1=__webpack_require__(12); var EventDefParser_1=__webpack_require__(49); var EventSource_1=__webpack_require__(6); var util_1=__webpack_require__(35); var Constraints= (function (){ function Constraints(eventManager, _calendar){ this.eventManager=eventManager; this._calendar=_calendar; } Constraints.prototype.opt=function (name){ return this._calendar.opt(name); }; Constraints.prototype.isEventInstanceGroupAllowed=function (eventInstanceGroup){ var eventDef=eventInstanceGroup.getEventDef(); var eventFootprints=this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges()); var i; var peerEventInstances=this.getPeerEventInstances(eventDef); var peerEventRanges=peerEventInstances.map(util_1.eventInstanceToEventRange); var peerEventFootprints=this.eventRangesToEventFootprints(peerEventRanges); var constraintVal=eventDef.getConstraint(); var overlapVal=eventDef.getOverlap(); var eventAllowFunc=this.opt('eventAllow'); for (i=0; i < eventFootprints.length; i++){ if(!this.isFootprintAllowed(eventFootprints[i].componentFootprint, peerEventFootprints, constraintVal, overlapVal, eventFootprints[i].eventInstance)){ return false; }} if(eventAllowFunc){ for (i=0; i < eventFootprints.length; i++){ if(eventAllowFunc(eventFootprints[i].componentFootprint.toLegacy(this._calendar), eventFootprints[i].getEventLegacy())===false){ return false; }} } return true; }; Constraints.prototype.getPeerEventInstances=function (eventDef){ return this.eventManager.getEventInstancesWithoutId(eventDef.id); }; Constraints.prototype.isSelectionFootprintAllowed=function (componentFootprint){ var peerEventInstances=this.eventManager.getEventInstances(); var peerEventRanges=peerEventInstances.map(util_1.eventInstanceToEventRange); var peerEventFootprints=this.eventRangesToEventFootprints(peerEventRanges); var selectAllowFunc; if(this.isFootprintAllowed(componentFootprint, peerEventFootprints, this.opt('selectConstraint'), this.opt('selectOverlap'))){ selectAllowFunc=this.opt('selectAllow'); if(selectAllowFunc){ return selectAllowFunc(componentFootprint.toLegacy(this._calendar))!==false; }else{ return true; }} return false; }; Constraints.prototype.isFootprintAllowed=function (componentFootprint, peerEventFootprints, constraintVal, overlapVal, subjectEventInstance ){ var constraintFootprints; var overlapEventFootprints; if(constraintVal!=null){ constraintFootprints=this.constraintValToFootprints(constraintVal, componentFootprint.isAllDay); if(!this.isFootprintWithinConstraints(componentFootprint, constraintFootprints)){ return false; }} overlapEventFootprints=this.collectOverlapEventFootprints(peerEventFootprints, componentFootprint); if(overlapVal===false){ if(overlapEventFootprints.length){ return false; }} else if(typeof overlapVal==='function'){ if(!isOverlapsAllowedByFunc(overlapEventFootprints, overlapVal, subjectEventInstance)){ return false; }} if(subjectEventInstance){ if(!isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance)){ return false; }} return true; }; Constraints.prototype.isFootprintWithinConstraints=function (componentFootprint, constraintFootprints){ var i; for (i=0; i < constraintFootprints.length; i++){ if(this.footprintContainsFootprint(constraintFootprints[i], componentFootprint)){ return true; }} return false; }; Constraints.prototype.constraintValToFootprints=function (constraintVal, isAllDay){ var eventInstances; if(constraintVal==='businessHours'){ return this.buildCurrentBusinessFootprints(isAllDay); } else if(typeof constraintVal==='object'){ eventInstances=this.parseEventDefToInstances(constraintVal); if(!eventInstances){ return this.parseFootprints(constraintVal); }else{ return this.eventInstancesToFootprints(eventInstances); }} else if(constraintVal!=null){ eventInstances=this.eventManager.getEventInstancesWithId(constraintVal); return this.eventInstancesToFootprints(eventInstances); }}; Constraints.prototype.buildCurrentBusinessFootprints=function (isAllDay){ var view=this._calendar.view; var businessHourGenerator=view.get('businessHourGenerator'); var unzonedRange=view.dateProfile.activeUnzonedRange; var eventInstanceGroup=businessHourGenerator.buildEventInstanceGroup(isAllDay, unzonedRange); if(eventInstanceGroup){ return this.eventInstancesToFootprints(eventInstanceGroup.eventInstances); }else{ return []; }}; Constraints.prototype.eventInstancesToFootprints=function (eventInstances){ var eventRanges=eventInstances.map(util_1.eventInstanceToEventRange); var eventFootprints=this.eventRangesToEventFootprints(eventRanges); return eventFootprints.map(util_1.eventFootprintToComponentFootprint); }; Constraints.prototype.collectOverlapEventFootprints=function (peerEventFootprints, targetFootprint){ var overlapEventFootprints=[]; var i; for (i=0; i < peerEventFootprints.length; i++){ if(this.footprintsIntersect(targetFootprint, peerEventFootprints[i].componentFootprint)){ overlapEventFootprints.push(peerEventFootprints[i]); }} return overlapEventFootprints; }; Constraints.prototype.parseEventDefToInstances=function (eventInput){ var eventManager=this.eventManager; var eventDef=EventDefParser_1.default.parse(eventInput, new EventSource_1.default(this._calendar)); if(!eventDef){ return false; } return eventDef.buildInstances(eventManager.currentPeriod.unzonedRange); }; Constraints.prototype.eventRangesToEventFootprints=function (eventRanges){ var i; var eventFootprints=[]; for (i=0; i < eventRanges.length; i++){ eventFootprints.push.apply(eventFootprints, this.eventRangeToEventFootprints(eventRanges[i])); } return eventFootprints; }; Constraints.prototype.eventRangeToEventFootprints=function (eventRange){ return [util_1.eventRangeToEventFootprint(eventRange)]; }; Constraints.prototype.parseFootprints=function (rawInput){ var start; var end; if(rawInput.start){ start=this._calendar.moment(rawInput.start); if(!start.isValid()){ start=null; }} if(rawInput.end){ end=this._calendar.moment(rawInput.end); if(!end.isValid()){ end=null; }} return [ new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), (start&&!start.hasTime())||(end&&!end.hasTime()) ) ]; }; Constraints.prototype.footprintContainsFootprint=function (outerFootprint, innerFootprint){ return outerFootprint.unzonedRange.containsRange(innerFootprint.unzonedRange); }; Constraints.prototype.footprintsIntersect=function (footprint0, footprint1){ return footprint0.unzonedRange.intersectsWith(footprint1.unzonedRange); }; return Constraints; }()); exports.default=Constraints; function isOverlapsAllowedByFunc(overlapEventFootprints, overlapFunc, subjectEventInstance){ var i; for (i=0; i < overlapEventFootprints.length; i++){ if(!overlapFunc(overlapEventFootprints[i].eventInstance.toLegacy(), subjectEventInstance ? subjectEventInstance.toLegacy():null)){ return false; }} return true; } function isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance){ var subjectLegacyInstance=subjectEventInstance.toLegacy(); var i; var overlapEventInstance; var overlapEventDef; var overlapVal; for (i=0; i < overlapEventFootprints.length; i++){ overlapEventInstance=overlapEventFootprints[i].eventInstance; overlapEventDef=overlapEventInstance.def; overlapVal=overlapEventDef.getOverlap(); if(overlapVal===false){ return false; } else if(typeof overlapVal==='function'){ if(!overlapVal(overlapEventInstance.toLegacy(), subjectLegacyInstance)){ return false; }} } return true; } }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var util_1=__webpack_require__(4); var Mixin_1=__webpack_require__(14); var ParsableModelMixin= (function (_super){ tslib_1.__extends(ParsableModelMixin, _super); function ParsableModelMixin(){ return _super!==null&&_super.apply(this, arguments)||this; } ParsableModelMixin.defineStandardProps=function (propDefs){ var proto=this.prototype; if(!proto.hasOwnProperty('standardPropMap')){ proto.standardPropMap=Object.create(proto.standardPropMap); } util_1.copyOwnProps(propDefs, proto.standardPropMap); }; ParsableModelMixin.copyVerbatimStandardProps=function (src, dest){ var map=this.prototype.standardPropMap; var propName; for (propName in map){ if(src[propName]!=null && map[propName]===true ){ dest[propName]=src[propName]; }} }; ParsableModelMixin.prototype.applyProps=function (rawProps){ var standardPropMap=this.standardPropMap; var manualProps={}; var miscProps={}; var propName; for (propName in rawProps){ if(standardPropMap[propName]===true){ this[propName]=rawProps[propName]; } else if(standardPropMap[propName]===false){ manualProps[propName]=rawProps[propName]; }else{ miscProps[propName]=rawProps[propName]; }} this.applyMiscProps(miscProps); return this.applyManualStandardProps(manualProps); }; ParsableModelMixin.prototype.applyManualStandardProps=function (rawProps){ return true; }; ParsableModelMixin.prototype.applyMiscProps=function (rawProps){ }; ParsableModelMixin.prototype.isStandardProp=function (propName){ return propName in this.standardPropMap; }; return ParsableModelMixin; }(Mixin_1.default)); exports.default=ParsableModelMixin; ParsableModelMixin.prototype.standardPropMap={}; }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); var EventInstance= (function (){ function EventInstance(def, dateProfile){ this.def=def; this.dateProfile=dateProfile; } EventInstance.prototype.toLegacy=function (){ var dateProfile=this.dateProfile; var obj=this.def.toLegacy(); obj.start=dateProfile.start.clone(); obj.end=dateProfile.end ? dateProfile.end.clone():null; return obj; }; return EventInstance; }()); exports.default=EventInstance; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var moment=__webpack_require__(0); var EventDef_1=__webpack_require__(34); var EventInstance_1=__webpack_require__(209); var EventDateProfile_1=__webpack_require__(17); var RecurringEventDef= (function (_super){ tslib_1.__extends(RecurringEventDef, _super); function RecurringEventDef(){ return _super!==null&&_super.apply(this, arguments)||this; } RecurringEventDef.prototype.isAllDay=function (){ return !this.startTime&&!this.endTime; }; RecurringEventDef.prototype.buildInstances=function (unzonedRange){ var calendar=this.source.calendar; var unzonedDate=unzonedRange.getStart(); var unzonedEnd=unzonedRange.getEnd(); var zonedDayStart; var instanceStart; var instanceEnd; var instances=[]; while (unzonedDate.isBefore(unzonedEnd)){ if(!this.dowHash||this.dowHash[unzonedDate.day()]){ zonedDayStart=calendar.applyTimezone(unzonedDate); instanceStart=zonedDayStart.clone(); instanceEnd=null; if(this.startTime){ instanceStart.time(this.startTime); }else{ instanceStart.stripTime(); } if(this.endTime){ instanceEnd=zonedDayStart.clone().time(this.endTime); } instances.push(new EventInstance_1.default(this, new EventDateProfile_1.default(instanceStart, instanceEnd, calendar))); } unzonedDate.add(1, 'days'); } return instances; }; RecurringEventDef.prototype.setDow=function (dowNumbers){ if(!this.dowHash){ this.dowHash={};} for (var i=0; i < dowNumbers.length; i++){ this.dowHash[dowNumbers[i]]=true; }}; RecurringEventDef.prototype.clone=function (){ var def=_super.prototype.clone.call(this); if(def.startTime){ def.startTime=moment.duration(this.startTime); } if(def.endTime){ def.endTime=moment.duration(this.endTime); } if(this.dowHash){ def.dowHash=$.extend({}, this.dowHash); } return def; }; return RecurringEventDef; }(EventDef_1.default)); exports.default=RecurringEventDef; RecurringEventDef.prototype.applyProps=function (rawProps){ var superSuccess=EventDef_1.default.prototype.applyProps.call(this, rawProps); if(rawProps.start){ this.startTime=moment.duration(rawProps.start); } if(rawProps.end){ this.endTime=moment.duration(rawProps.end); } if(rawProps.dow){ this.setDow(rawProps.dow); } return superSuccess; }; RecurringEventDef.defineStandardProps({ start: false, end: false, dow: false }); }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); var EventRange= (function (){ function EventRange(unzonedRange, eventDef, eventInstance){ this.unzonedRange=unzonedRange; this.eventDef=eventDef; if(eventInstance){ this.eventInstance=eventInstance; }} return EventRange; }()); exports.default=EventRange; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(35); var EventInstanceGroup_1=__webpack_require__(18); var RecurringEventDef_1=__webpack_require__(210); var EventSource_1=__webpack_require__(6); var BUSINESS_HOUR_EVENT_DEFAULTS={ start: '09:00', end: '17:00', dow: [1, 2, 3, 4, 5], rendering: 'inverse-background' }; var BusinessHourGenerator= (function (){ function BusinessHourGenerator(rawComplexDef, calendar){ this.rawComplexDef=rawComplexDef; this.calendar=calendar; } BusinessHourGenerator.prototype.buildEventInstanceGroup=function (isAllDay, unzonedRange){ var eventDefs=this.buildEventDefs(isAllDay); var eventInstanceGroup; if(eventDefs.length){ eventInstanceGroup=new EventInstanceGroup_1.default(util_1.eventDefsToEventInstances(eventDefs, unzonedRange)); eventInstanceGroup.explicitEventDef=eventDefs[0]; return eventInstanceGroup; }}; BusinessHourGenerator.prototype.buildEventDefs=function (isAllDay){ var rawComplexDef=this.rawComplexDef; var rawDefs=[]; var requireDow=false; var i; var defs=[]; if(rawComplexDef===true){ rawDefs=[{}]; } else if($.isPlainObject(rawComplexDef)){ rawDefs=[rawComplexDef]; } else if($.isArray(rawComplexDef)){ rawDefs=rawComplexDef; requireDow=true; } for (i=0; i < rawDefs.length; i++){ if(!requireDow||rawDefs[i].dow){ defs.push(this.buildEventDef(isAllDay, rawDefs[i])); }} return defs; }; BusinessHourGenerator.prototype.buildEventDef=function (isAllDay, rawDef){ var fullRawDef=$.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, rawDef); if(isAllDay){ fullRawDef.start=null; fullRawDef.end=null; } return RecurringEventDef_1.default.parse(fullRawDef, new EventSource_1.default(this.calendar) ); }; return BusinessHourGenerator; }()); exports.default=BusinessHourGenerator; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var Theme_1=__webpack_require__(19); var StandardTheme= (function (_super){ tslib_1.__extends(StandardTheme, _super); function StandardTheme(){ return _super!==null&&_super.apply(this, arguments)||this; } return StandardTheme; }(Theme_1.default)); exports.default=StandardTheme; StandardTheme.prototype.classes={ widget: 'fc-unthemed', widgetHeader: 'fc-widget-header', widgetContent: 'fc-widget-content', buttonGroup: 'fc-button-group', button: 'fc-button', cornerLeft: 'fc-corner-left', cornerRight: 'fc-corner-right', stateDefault: 'fc-state-default', stateActive: 'fc-state-active', stateDisabled: 'fc-state-disabled', stateHover: 'fc-state-hover', stateDown: 'fc-state-down', popoverHeader: 'fc-widget-header', popoverContent: 'fc-widget-content', headerRow: 'fc-widget-header', dayRow: 'fc-widget-content', listView: 'fc-widget-content' }; StandardTheme.prototype.baseIconClass='fc-icon'; StandardTheme.prototype.iconClasses={ close: 'fc-icon-x', prev: 'fc-icon-left-single-arrow', next: 'fc-icon-right-single-arrow', prevYear: 'fc-icon-left-double-arrow', nextYear: 'fc-icon-right-double-arrow' }; StandardTheme.prototype.iconOverrideOption='buttonIcons'; StandardTheme.prototype.iconOverrideCustomButtonOption='icon'; StandardTheme.prototype.iconOverridePrefix='fc-icon-'; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var Theme_1=__webpack_require__(19); var JqueryUiTheme= (function (_super){ tslib_1.__extends(JqueryUiTheme, _super); function JqueryUiTheme(){ return _super!==null&&_super.apply(this, arguments)||this; } return JqueryUiTheme; }(Theme_1.default)); exports.default=JqueryUiTheme; JqueryUiTheme.prototype.classes={ widget: 'ui-widget', widgetHeader: 'ui-widget-header', widgetContent: 'ui-widget-content', buttonGroup: 'fc-button-group', button: 'ui-button', cornerLeft: 'ui-corner-left', cornerRight: 'ui-corner-right', stateDefault: 'ui-state-default', stateActive: 'ui-state-active', stateDisabled: 'ui-state-disabled', stateHover: 'ui-state-hover', stateDown: 'ui-state-down', today: 'ui-state-highlight', popoverHeader: 'ui-widget-header', popoverContent: 'ui-widget-content', headerRow: 'ui-widget-header', dayRow: 'ui-widget-content', listView: 'ui-widget-content' }; JqueryUiTheme.prototype.baseIconClass='ui-icon'; JqueryUiTheme.prototype.iconClasses={ close: 'ui-icon-closethick', prev: 'ui-icon-circle-triangle-w', next: 'ui-icon-circle-triangle-e', prevYear: 'ui-icon-seek-prev', nextYear: 'ui-icon-seek-next' }; JqueryUiTheme.prototype.iconOverrideOption='themeButtonIcons'; JqueryUiTheme.prototype.iconOverrideCustomButtonOption='themeIcon'; JqueryUiTheme.prototype.iconOverridePrefix='ui-icon-'; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var Promise_1=__webpack_require__(20); var EventSource_1=__webpack_require__(6); var FuncEventSource= (function (_super){ tslib_1.__extends(FuncEventSource, _super); function FuncEventSource(){ return _super!==null&&_super.apply(this, arguments)||this; } FuncEventSource.parse=function (rawInput, calendar){ var rawProps; if($.isFunction(rawInput.events)){ rawProps=rawInput; } else if($.isFunction(rawInput)){ rawProps={ events: rawInput };} if(rawProps){ return EventSource_1.default.parse.call(this, rawProps, calendar); } return false; }; FuncEventSource.prototype.fetch=function (start, end, timezone){ var _this=this; this.calendar.pushLoading(); return Promise_1.default.construct(function (onResolve){ _this.func.call(_this.calendar, start.clone(), end.clone(), timezone, function (rawEventDefs){ _this.calendar.popLoading(); onResolve(_this.parseEventDefs(rawEventDefs)); }); }); }; FuncEventSource.prototype.getPrimitive=function (){ return this.func; }; FuncEventSource.prototype.applyManualStandardProps=function (rawProps){ var superSuccess=_super.prototype.applyManualStandardProps.call(this, rawProps); this.func=rawProps.events; return superSuccess; }; return FuncEventSource; }(EventSource_1.default)); exports.default=FuncEventSource; FuncEventSource.defineStandardProps({ events: false }); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var Promise_1=__webpack_require__(20); var EventSource_1=__webpack_require__(6); var JsonFeedEventSource= (function (_super){ tslib_1.__extends(JsonFeedEventSource, _super); function JsonFeedEventSource(){ return _super!==null&&_super.apply(this, arguments)||this; } JsonFeedEventSource.parse=function (rawInput, calendar){ var rawProps; if(typeof rawInput.url==='string'){ rawProps=rawInput; } else if(typeof rawInput==='string'){ rawProps={ url: rawInput };} if(rawProps){ return EventSource_1.default.parse.call(this, rawProps, calendar); } return false; }; JsonFeedEventSource.prototype.fetch=function (start, end, timezone){ var _this=this; var ajaxSettings=this.ajaxSettings; var onSuccess=ajaxSettings.success; var onError=ajaxSettings.error; var requestParams=this.buildRequestParams(start, end, timezone); this.calendar.pushLoading(); return Promise_1.default.construct(function (onResolve, onReject){ $.ajax($.extend({}, JsonFeedEventSource.AJAX_DEFAULTS, ajaxSettings, { url: _this.url, data: requestParams, success: function (rawEventDefs, status, xhr){ var callbackRes; _this.calendar.popLoading(); if(rawEventDefs){ callbackRes=util_1.applyAll(onSuccess, _this, [rawEventDefs, status, xhr]); if($.isArray(callbackRes)){ rawEventDefs=callbackRes; } onResolve(_this.parseEventDefs(rawEventDefs)); }else{ onReject(); }}, error: function (xhr, statusText, errorThrown){ _this.calendar.popLoading(); util_1.applyAll(onError, _this, [xhr, statusText, errorThrown]); onReject(); }})); }); }; JsonFeedEventSource.prototype.buildRequestParams=function (start, end, timezone){ var calendar=this.calendar; var ajaxSettings=this.ajaxSettings; var startParam; var endParam; var timezoneParam; var customRequestParams; var params={}; startParam=this.startParam; if(startParam==null){ startParam=calendar.opt('startParam'); } endParam=this.endParam; if(endParam==null){ endParam=calendar.opt('endParam'); } timezoneParam=this.timezoneParam; if(timezoneParam==null){ timezoneParam=calendar.opt('timezoneParam'); } if($.isFunction(ajaxSettings.data)){ customRequestParams=ajaxSettings.data(); }else{ customRequestParams=ajaxSettings.data||{};} $.extend(params, customRequestParams); params[startParam]=start.format(); params[endParam]=end.format(); if(timezone&&timezone!=='local'){ params[timezoneParam]=timezone; } return params; }; JsonFeedEventSource.prototype.getPrimitive=function (){ return this.url; }; JsonFeedEventSource.prototype.applyMiscProps=function (rawProps){ this.ajaxSettings=rawProps; }; JsonFeedEventSource.AJAX_DEFAULTS={ dataType: 'json', cache: false }; return JsonFeedEventSource; }(EventSource_1.default)); exports.default=JsonFeedEventSource; JsonFeedEventSource.defineStandardProps({ url: true, startParam: true, endParam: true, timezoneParam: true }); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var EmitterMixin_1=__webpack_require__(11); var TaskQueue= (function (){ function TaskQueue(){ this.q=[]; this.isPaused=false; this.isRunning=false; } TaskQueue.prototype.queue=function (){ var args=[]; for (var _i=0; _i < arguments.length; _i++){ args[_i]=arguments[_i]; } this.q.push.apply(this.q, args); this.tryStart(); }; TaskQueue.prototype.pause=function (){ this.isPaused=true; }; TaskQueue.prototype.resume=function (){ this.isPaused=false; this.tryStart(); }; TaskQueue.prototype.getIsIdle=function (){ return !this.isRunning&&!this.isPaused; }; TaskQueue.prototype.tryStart=function (){ if(!this.isRunning&&this.canRunNext()){ this.isRunning=true; this.trigger('start'); this.runRemaining(); }}; TaskQueue.prototype.canRunNext=function (){ return !this.isPaused&&this.q.length; }; TaskQueue.prototype.runRemaining=function (){ var _this=this; var task; var res; do { task=this.q.shift(); res=this.runTask(task); if(res&&res.then){ res.then(function (){ if(_this.canRunNext()){ _this.runRemaining(); }}); return; }} while (this.canRunNext()); this.trigger('stop'); this.isRunning=false; this.tryStart(); }; TaskQueue.prototype.runTask=function (task){ return task(); }; return TaskQueue; }()); exports.default=TaskQueue; EmitterMixin_1.default.mixInto(TaskQueue); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var TaskQueue_1=__webpack_require__(217); var RenderQueue= (function (_super){ tslib_1.__extends(RenderQueue, _super); function RenderQueue(waitsByNamespace){ var _this=_super.call(this)||this; _this.waitsByNamespace=waitsByNamespace||{}; return _this; } RenderQueue.prototype.queue=function (taskFunc, namespace, type){ var task={ func: taskFunc, namespace: namespace, type: type }; var waitMs; if(namespace){ waitMs=this.waitsByNamespace[namespace]; } if(this.waitNamespace){ if(namespace===this.waitNamespace&&waitMs!=null){ this.delayWait(waitMs); }else{ this.clearWait(); this.tryStart(); }} if(this.compoundTask(task)){ if(!this.waitNamespace&&waitMs!=null){ this.startWait(namespace, waitMs); }else{ this.tryStart(); }} }; RenderQueue.prototype.startWait=function (namespace, waitMs){ this.waitNamespace=namespace; this.spawnWait(waitMs); }; RenderQueue.prototype.delayWait=function (waitMs){ clearTimeout(this.waitId); this.spawnWait(waitMs); }; RenderQueue.prototype.spawnWait=function (waitMs){ var _this=this; this.waitId=setTimeout(function (){ _this.waitNamespace=null; _this.tryStart(); }, waitMs); }; RenderQueue.prototype.clearWait=function (){ if(this.waitNamespace){ clearTimeout(this.waitId); this.waitId=null; this.waitNamespace=null; }}; RenderQueue.prototype.canRunNext=function (){ if(!_super.prototype.canRunNext.call(this)){ return false; } if(this.waitNamespace){ var q=this.q; for (var i=0; i < q.length; i++){ if(q[i].namespace!==this.waitNamespace){ return true; }} return false; } return true; }; RenderQueue.prototype.runTask=function (task){ task.func(); }; RenderQueue.prototype.compoundTask=function (newTask){ var q=this.q; var shouldAppend=true; var i; var task; if(newTask.namespace&&newTask.type==='destroy'){ for (i=q.length - 1; i >=0; i--){ task=q[i]; switch (task.type){ case 'init': shouldAppend=false; case 'add': case 'remove': q.splice(i, 1); }} } if(shouldAppend){ q.push(newTask); } return shouldAppend; }; return RenderQueue; }(TaskQueue_1.default)); exports.default=RenderQueue; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var moment=__webpack_require__(0); var util_1=__webpack_require__(4); var moment_ext_1=__webpack_require__(10); var date_formatting_1=__webpack_require__(47); var Component_1=__webpack_require__(237); var util_2=__webpack_require__(35); var DateComponent= (function (_super){ tslib_1.__extends(DateComponent, _super); function DateComponent(_view, _options){ var _this=_super.call(this)||this; _this.isRTL=false; _this.hitsNeededDepth=0; _this.hasAllDayBusinessHours=false; _this.isDatesRendered=false; if(_view){ _this['view']=_view; } if(_options){ _this['options']=_options; } _this.uid=String(DateComponent.guid++); _this.childrenByUid={}; _this.nextDayThreshold=moment.duration(_this.opt('nextDayThreshold')); _this.isRTL=_this.opt('isRTL'); if(_this.fillRendererClass){ _this.fillRenderer=new _this.fillRendererClass(_this); } if(_this.eventRendererClass){ _this.eventRenderer=new _this.eventRendererClass(_this, _this.fillRenderer); } if(_this.helperRendererClass&&_this.eventRenderer){ _this.helperRenderer=new _this.helperRendererClass(_this, _this.eventRenderer); } if(_this.businessHourRendererClass&&_this.fillRenderer){ _this.businessHourRenderer=new _this.businessHourRendererClass(_this, _this.fillRenderer); } return _this; } DateComponent.prototype.addChild=function (child){ if(!this.childrenByUid[child.uid]){ this.childrenByUid[child.uid]=child; return true; } return false; }; DateComponent.prototype.removeChild=function (child){ if(this.childrenByUid[child.uid]){ delete this.childrenByUid[child.uid]; return true; } return false; }; DateComponent.prototype.updateSize=function (totalHeight, isAuto, isResize){ this.callChildren('updateSize', arguments); }; DateComponent.prototype.opt=function (name){ return this._getView().opt(name); }; DateComponent.prototype.publiclyTrigger=function (){ var args=[]; for (var _i=0; _i < arguments.length; _i++){ args[_i]=arguments[_i]; } var calendar=this._getCalendar(); return calendar.publiclyTrigger.apply(calendar, args); }; DateComponent.prototype.hasPublicHandlers=function (){ var args=[]; for (var _i=0; _i < arguments.length; _i++){ args[_i]=arguments[_i]; } var calendar=this._getCalendar(); return calendar.hasPublicHandlers.apply(calendar, args); }; DateComponent.prototype.executeDateRender=function (dateProfile){ this.dateProfile=dateProfile; this.renderDates(dateProfile); this.isDatesRendered=true; this.callChildren('executeDateRender', arguments); }; DateComponent.prototype.executeDateUnrender=function (){ this.callChildren('executeDateUnrender', arguments); this.dateProfile=null; this.unrenderDates(); this.isDatesRendered=false; }; DateComponent.prototype.renderDates=function (dateProfile){ }; DateComponent.prototype.unrenderDates=function (){ }; DateComponent.prototype.getNowIndicatorUnit=function (){ }; DateComponent.prototype.renderNowIndicator=function (date){ this.callChildren('renderNowIndicator', arguments); }; DateComponent.prototype.unrenderNowIndicator=function (){ this.callChildren('unrenderNowIndicator', arguments); }; DateComponent.prototype.renderBusinessHours=function (businessHourGenerator){ if(this.businessHourRenderer){ this.businessHourRenderer.render(businessHourGenerator); } this.callChildren('renderBusinessHours', arguments); }; DateComponent.prototype.unrenderBusinessHours=function (){ this.callChildren('unrenderBusinessHours', arguments); if(this.businessHourRenderer){ this.businessHourRenderer.unrender(); }}; DateComponent.prototype.executeEventRender=function (eventsPayload){ if(this.eventRenderer){ this.eventRenderer.rangeUpdated(); this.eventRenderer.render(eventsPayload); } else if(this['renderEvents']){ this['renderEvents'](convertEventsPayloadToLegacyArray(eventsPayload)); } this.callChildren('executeEventRender', arguments); }; DateComponent.prototype.executeEventUnrender=function (){ this.callChildren('executeEventUnrender', arguments); if(this.eventRenderer){ this.eventRenderer.unrender(); } else if(this['destroyEvents']){ this['destroyEvents'](); }}; DateComponent.prototype.getBusinessHourSegs=function (){ var segs=this.getOwnBusinessHourSegs(); this.iterChildren(function (child){ segs.push.apply(segs, child.getBusinessHourSegs()); }); return segs; }; DateComponent.prototype.getOwnBusinessHourSegs=function (){ if(this.businessHourRenderer){ return this.businessHourRenderer.getSegs(); } return []; }; DateComponent.prototype.getEventSegs=function (){ var segs=this.getOwnEventSegs(); this.iterChildren(function (child){ segs.push.apply(segs, child.getEventSegs()); }); return segs; }; DateComponent.prototype.getOwnEventSegs=function (){ if(this.eventRenderer){ return this.eventRenderer.getSegs(); } return []; }; DateComponent.prototype.triggerAfterEventsRendered=function (){ this.triggerAfterEventSegsRendered(this.getEventSegs()); this.publiclyTrigger('eventAfterAllRender', { context: this, args: [this] }); }; DateComponent.prototype.triggerAfterEventSegsRendered=function (segs){ var _this=this; if(this.hasPublicHandlers('eventAfterRender')){ segs.forEach(function (seg){ var legacy; if(seg.el){ legacy=seg.footprint.getEventLegacy(); _this.publiclyTrigger('eventAfterRender', { context: legacy, args: [legacy, seg.el, _this] }); }}); }}; DateComponent.prototype.triggerBeforeEventsDestroyed=function (){ this.triggerBeforeEventSegsDestroyed(this.getEventSegs()); }; DateComponent.prototype.triggerBeforeEventSegsDestroyed=function (segs){ var _this=this; if(this.hasPublicHandlers('eventDestroy')){ segs.forEach(function (seg){ var legacy; if(seg.el){ legacy=seg.footprint.getEventLegacy(); _this.publiclyTrigger('eventDestroy', { context: legacy, args: [legacy, seg.el, _this] }); }}); }}; DateComponent.prototype.showEventsWithId=function (eventDefId){ this.getEventSegs().forEach(function (seg){ if(seg.footprint.eventDef.id===eventDefId && seg.el ){ seg.el.css('visibility', ''); }}); this.callChildren('showEventsWithId', arguments); }; DateComponent.prototype.hideEventsWithId=function (eventDefId){ this.getEventSegs().forEach(function (seg){ if(seg.footprint.eventDef.id===eventDefId && seg.el ){ seg.el.css('visibility', 'hidden'); }}); this.callChildren('hideEventsWithId', arguments); }; DateComponent.prototype.renderDrag=function (eventFootprints, seg, isTouch){ var renderedHelper=false; this.iterChildren(function (child){ if(child.renderDrag(eventFootprints, seg, isTouch)){ renderedHelper=true; }}); return renderedHelper; }; DateComponent.prototype.unrenderDrag=function (){ this.callChildren('unrenderDrag', arguments); }; DateComponent.prototype.renderEventResize=function (eventFootprints, seg, isTouch){ this.callChildren('renderEventResize', arguments); }; DateComponent.prototype.unrenderEventResize=function (){ this.callChildren('unrenderEventResize', arguments); }; DateComponent.prototype.renderSelectionFootprint=function (componentFootprint){ this.renderHighlight(componentFootprint); this.callChildren('renderSelectionFootprint', arguments); }; DateComponent.prototype.unrenderSelection=function (){ this.unrenderHighlight(); this.callChildren('unrenderSelection', arguments); }; DateComponent.prototype.renderHighlight=function (componentFootprint){ if(this.fillRenderer){ this.fillRenderer.renderFootprint('highlight', componentFootprint, { getClasses: function (){ return ['fc-highlight']; }}); } this.callChildren('renderHighlight', arguments); }; DateComponent.prototype.unrenderHighlight=function (){ if(this.fillRenderer){ this.fillRenderer.unrender('highlight'); } this.callChildren('unrenderHighlight', arguments); }; DateComponent.prototype.hitsNeeded=function (){ if(!(this.hitsNeededDepth++)){ this.prepareHits(); } this.callChildren('hitsNeeded', arguments); }; DateComponent.prototype.hitsNotNeeded=function (){ if(this.hitsNeededDepth&&!(--this.hitsNeededDepth)){ this.releaseHits(); } this.callChildren('hitsNotNeeded', arguments); }; DateComponent.prototype.prepareHits=function (){ }; DateComponent.prototype.releaseHits=function (){ }; DateComponent.prototype.queryHit=function (leftOffset, topOffset){ var childrenByUid=this.childrenByUid; var uid; var hit; for (uid in childrenByUid){ hit=childrenByUid[uid].queryHit(leftOffset, topOffset); if(hit){ break; }} return hit; }; DateComponent.prototype.getSafeHitFootprint=function (hit){ var footprint=this.getHitFootprint(hit); if(!this.dateProfile.activeUnzonedRange.containsRange(footprint.unzonedRange)){ return null; } return footprint; }; DateComponent.prototype.getHitFootprint=function (hit){ }; DateComponent.prototype.getHitEl=function (hit){ }; DateComponent.prototype.eventRangesToEventFootprints=function (eventRanges){ var eventFootprints=[]; var i; for (i=0; i < eventRanges.length; i++){ eventFootprints.push.apply(eventFootprints, this.eventRangeToEventFootprints(eventRanges[i])); } return eventFootprints; }; DateComponent.prototype.eventRangeToEventFootprints=function (eventRange){ return [util_2.eventRangeToEventFootprint(eventRange)]; }; DateComponent.prototype.eventFootprintsToSegs=function (eventFootprints){ var segs=[]; var i; for (i=0; i < eventFootprints.length; i++){ segs.push.apply(segs, this.eventFootprintToSegs(eventFootprints[i])); } return segs; }; DateComponent.prototype.eventFootprintToSegs=function (eventFootprint){ var unzonedRange=eventFootprint.componentFootprint.unzonedRange; var segs; var i; var seg; segs=this.componentFootprintToSegs(eventFootprint.componentFootprint); for (i=0; i < segs.length; i++){ seg=segs[i]; if(!unzonedRange.isStart){ seg.isStart=false; } if(!unzonedRange.isEnd){ seg.isEnd=false; } seg.footprint=eventFootprint; } return segs; }; DateComponent.prototype.componentFootprintToSegs=function (componentFootprint){ return []; }; DateComponent.prototype.callChildren=function (methodName, args){ this.iterChildren(function (child){ child[methodName].apply(child, args); }); }; DateComponent.prototype.iterChildren=function (func){ var childrenByUid=this.childrenByUid; var uid; for (uid in childrenByUid){ func(childrenByUid[uid]); }}; DateComponent.prototype._getCalendar=function (){ var t=this; return t.calendar||t.view.calendar; }; DateComponent.prototype._getView=function (){ return this.view; }; DateComponent.prototype._getDateProfile=function (){ return this._getView().get('dateProfile'); }; DateComponent.prototype.buildGotoAnchorHtml=function (gotoOptions, attrs, innerHtml){ var date; var type; var forceOff; var finalOptions; if($.isPlainObject(gotoOptions)){ date=gotoOptions.date; type=gotoOptions.type; forceOff=gotoOptions.forceOff; }else{ date=gotoOptions; } date=moment_ext_1.default(date); finalOptions={ date: date.format('YYYY-MM-DD'), type: type||'day' }; if(typeof attrs==='string'){ innerHtml=attrs; attrs=null; } attrs=attrs ? ' ' + util_1.attrsToStr(attrs):''; innerHtml=innerHtml||''; if(!forceOff&&this.opt('navLinks')){ return '' + innerHtml + '
'; }else{ return '' + innerHtml + ''; }}; DateComponent.prototype.getAllDayHtml=function (){ return this.opt('allDayHtml')||util_1.htmlEscape(this.opt('allDayText')); }; DateComponent.prototype.getDayClasses=function (date, noThemeHighlight){ var view=this._getView(); var classes=[]; var today; if(!this.dateProfile.activeUnzonedRange.containsDate(date)){ classes.push('fc-disabled-day'); }else{ classes.push('fc-' + util_1.dayIDs[date.day()]); if(view.isDateInOtherMonth(date, this.dateProfile)){ classes.push('fc-other-month'); } today=view.calendar.getNow(); if(date.isSame(today, 'day')){ classes.push('fc-today'); if(noThemeHighlight!==true){ classes.push(view.calendar.theme.getClass('today')); }} else if(date < today){ classes.push('fc-past'); }else{ classes.push('fc-future'); }} return classes; }; DateComponent.prototype.formatRange=function (range, isAllDay, formatStr, separator){ var end=range.end; if(isAllDay){ end=end.clone().subtract(1); } return date_formatting_1.formatRange(range.start, end, formatStr, separator, this.isRTL); }; DateComponent.prototype.currentRangeAs=function (unit){ return this._getDateProfile().currentUnzonedRange.as(unit); }; DateComponent.prototype.computeDayRange=function (unzonedRange){ var calendar=this._getCalendar(); var startDay=calendar.msToUtcMoment(unzonedRange.startMs, true); var end=calendar.msToUtcMoment(unzonedRange.endMs); var endTimeMS=+end.time(); var endDay=end.clone().stripTime(); if(endTimeMS&&endTimeMS >=this.nextDayThreshold){ endDay.add(1, 'days'); } if(endDay <=startDay){ endDay=startDay.clone().add(1, 'days'); } return { start: startDay, end: endDay };}; DateComponent.prototype.isMultiDayRange=function (unzonedRange){ var dayRange=this.computeDayRange(unzonedRange); return dayRange.end.diff(dayRange.start, 'days') > 1; }; DateComponent.guid=0; return DateComponent; }(Component_1.default)); exports.default=DateComponent; function convertEventsPayloadToLegacyArray(eventsPayload){ var eventDefId; var eventInstances; var legacyEvents=[]; var i; for (eventDefId in eventsPayload){ eventInstances=eventsPayload[eventDefId].eventInstances; for (i=0; i < eventInstances.length; i++){ legacyEvents.push(eventInstances[i].toLegacy()); }} return legacyEvents; } }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var moment=__webpack_require__(0); var util_1=__webpack_require__(4); var options_1=__webpack_require__(32); var Iterator_1=__webpack_require__(238); var GlobalEmitter_1=__webpack_require__(21); var EmitterMixin_1=__webpack_require__(11); var ListenerMixin_1=__webpack_require__(7); var Toolbar_1=__webpack_require__(239); var OptionsManager_1=__webpack_require__(240); var ViewSpecManager_1=__webpack_require__(241); var Constraints_1=__webpack_require__(207); var locale_1=__webpack_require__(31); var moment_ext_1=__webpack_require__(10); var UnzonedRange_1=__webpack_require__(5); var ComponentFootprint_1=__webpack_require__(12); var EventDateProfile_1=__webpack_require__(17); var EventManager_1=__webpack_require__(242); var BusinessHourGenerator_1=__webpack_require__(212); var EventSourceParser_1=__webpack_require__(38); var EventDefParser_1=__webpack_require__(49); var SingleEventDef_1=__webpack_require__(13); var EventDefMutation_1=__webpack_require__(37); var EventSource_1=__webpack_require__(6); var ThemeRegistry_1=__webpack_require__(51); var Calendar= (function (){ function Calendar(el, overrides){ this.loadingLevel=0; this.ignoreUpdateViewSize=0; this.freezeContentHeightDepth=0; GlobalEmitter_1.default.needed(); this.el=el; this.viewsByType={}; this.optionsManager=new OptionsManager_1.default(this, overrides); this.viewSpecManager=new ViewSpecManager_1.default(this.optionsManager, this); this.initMomentInternals(); this.initCurrentDate(); this.initEventManager(); this.constraints=new Constraints_1.default(this.eventManager, this); this.constructed(); } Calendar.prototype.constructed=function (){ }; Calendar.prototype.getView=function (){ return this.view; }; Calendar.prototype.publiclyTrigger=function (name, triggerInfo){ var optHandler=this.opt(name); var context; var args; if($.isPlainObject(triggerInfo)){ context=triggerInfo.context; args=triggerInfo.args; } else if($.isArray(triggerInfo)){ args=triggerInfo; } if(context==null){ context=this.el[0]; } if(!args){ args=[]; } this.triggerWith(name, context, args); if(optHandler){ return optHandler.apply(context, args); }}; Calendar.prototype.hasPublicHandlers=function (name){ return this.hasHandlers(name) || this.opt(name); }; Calendar.prototype.option=function (name, value){ var newOptionHash; if(typeof name==='string'){ if(value===undefined){ return this.optionsManager.get(name); }else{ newOptionHash={}; newOptionHash[name]=value; this.optionsManager.add(newOptionHash); }} else if(typeof name==='object'){ this.optionsManager.add(name); }}; Calendar.prototype.opt=function (name){ return this.optionsManager.get(name); }; Calendar.prototype.instantiateView=function (viewType){ var spec=this.viewSpecManager.getViewSpec(viewType); if(!spec){ throw new Error("View type \"" + viewType + "\" is not valid"); } return new spec['class'](this, spec); }; Calendar.prototype.isValidViewType=function (viewType){ return Boolean(this.viewSpecManager.getViewSpec(viewType)); }; Calendar.prototype.changeView=function (viewName, dateOrRange){ if(dateOrRange){ if(dateOrRange.start&&dateOrRange.end){ this.optionsManager.recordOverrides({ visibleRange: dateOrRange }); }else{ this.currentDate=this.moment(dateOrRange).stripZone(); }} this.renderView(viewName); }; Calendar.prototype.zoomTo=function (newDate, viewType){ var spec; viewType=viewType||'day'; spec=this.viewSpecManager.getViewSpec(viewType) || this.viewSpecManager.getUnitViewSpec(viewType); this.currentDate=newDate.clone(); this.renderView(spec ? spec.type:null); }; Calendar.prototype.initCurrentDate=function (){ var defaultDateInput=this.opt('defaultDate'); if(defaultDateInput!=null){ this.currentDate=this.moment(defaultDateInput).stripZone(); }else{ this.currentDate=this.getNow(); }}; Calendar.prototype.prev=function (){ var view=this.view; var prevInfo=view.dateProfileGenerator.buildPrev(view.get('dateProfile')); if(prevInfo.isValid){ this.currentDate=prevInfo.date; this.renderView(); }}; Calendar.prototype.next=function (){ var view=this.view; var nextInfo=view.dateProfileGenerator.buildNext(view.get('dateProfile')); if(nextInfo.isValid){ this.currentDate=nextInfo.date; this.renderView(); }}; Calendar.prototype.prevYear=function (){ this.currentDate.add(-1, 'years'); this.renderView(); }; Calendar.prototype.nextYear=function (){ this.currentDate.add(1, 'years'); this.renderView(); }; Calendar.prototype.today=function (){ this.currentDate=this.getNow(); this.renderView(); }; Calendar.prototype.gotoDate=function (zonedDateInput){ this.currentDate=this.moment(zonedDateInput).stripZone(); this.renderView(); }; Calendar.prototype.incrementDate=function (delta){ this.currentDate.add(moment.duration(delta)); this.renderView(); }; Calendar.prototype.getDate=function (){ return this.applyTimezone(this.currentDate); }; Calendar.prototype.pushLoading=function (){ if(!(this.loadingLevel++)){ this.publiclyTrigger('loading', [true, this.view]); }}; Calendar.prototype.popLoading=function (){ if(!(--this.loadingLevel)){ this.publiclyTrigger('loading', [false, this.view]); }}; Calendar.prototype.render=function (){ if(!this.contentEl){ this.initialRender(); } else if(this.elementVisible()){ this.calcSize(); this.updateViewSize(); }}; Calendar.prototype.initialRender=function (){ var _this=this; var el=this.el; el.addClass('fc'); el.on('click.fc', 'a[data-goto]', function (ev){ var anchorEl=$(ev.currentTarget); var gotoOptions=anchorEl.data('goto'); var date=_this.moment(gotoOptions.date); var viewType=gotoOptions.type; var customAction=_this.view.opt('navLink' + util_1.capitaliseFirstLetter(viewType) + 'Click'); if(typeof customAction==='function'){ customAction(date, ev); }else{ if(typeof customAction==='string'){ viewType=customAction; } _this.zoomTo(date, viewType); }}); this.optionsManager.watch('settingTheme', ['?theme', '?themeSystem'], function (opts){ var themeClass=ThemeRegistry_1.getThemeSystemClass(opts.themeSystem||opts.theme); var theme=new themeClass(_this.optionsManager); var widgetClass=theme.getClass('widget'); _this.theme=theme; if(widgetClass){ el.addClass(widgetClass); }}, function (){ var widgetClass=_this.theme.getClass('widget'); _this.theme=null; if(widgetClass){ el.removeClass(widgetClass); }}); this.optionsManager.watch('settingBusinessHourGenerator', ['?businessHours'], function (deps){ _this.businessHourGenerator=new BusinessHourGenerator_1.default(deps.businessHours, _this); if(_this.view){ _this.view.set('businessHourGenerator', _this.businessHourGenerator); }}, function (){ _this.businessHourGenerator=null; }); this.optionsManager.watch('applyingDirClasses', ['?isRTL', '?locale'], function (opts){ el.toggleClass('fc-ltr', !opts.isRTL); el.toggleClass('fc-rtl', opts.isRTL); }); this.contentEl=$("
").prependTo(el); this.initToolbars(); this.renderHeader(); this.renderFooter(); this.renderView(this.opt('defaultView')); if(this.opt('handleWindowResize')){ $(window).resize(this.windowResizeProxy=util_1.debounce(this.windowResize.bind(this), this.opt('windowResizeDelay'))); }}; Calendar.prototype.destroy=function (){ if(this.view){ this.clearView(); } this.toolbarsManager.proxyCall('removeElement'); this.contentEl.remove(); this.el.removeClass('fc fc-ltr fc-rtl'); this.optionsManager.unwatch('settingTheme'); this.optionsManager.unwatch('settingBusinessHourGenerator'); this.el.off('.fc'); if(this.windowResizeProxy){ $(window).unbind('resize', this.windowResizeProxy); this.windowResizeProxy=null; } GlobalEmitter_1.default.unneeded(); }; Calendar.prototype.elementVisible=function (){ return this.el.is(':visible'); }; Calendar.prototype.bindViewHandlers=function (view){ var _this=this; view.watch('titleForCalendar', ['title'], function (deps){ if(view===_this.view){ _this.setToolbarsTitle(deps.title); }}); view.watch('dateProfileForCalendar', ['dateProfile'], function (deps){ if(view===_this.view){ _this.currentDate=deps.dateProfile.date; _this.updateToolbarButtons(deps.dateProfile); }}); }; Calendar.prototype.unbindViewHandlers=function (view){ view.unwatch('titleForCalendar'); view.unwatch('dateProfileForCalendar'); }; Calendar.prototype.renderView=function (viewType){ var oldView=this.view; var newView; this.freezeContentHeight(); if(oldView&&viewType&&oldView.type!==viewType){ this.clearView(); } if(!this.view&&viewType){ newView=this.view = this.viewsByType[viewType] || (this.viewsByType[viewType]=this.instantiateView(viewType)); this.bindViewHandlers(newView); newView.startBatchRender(); newView.setElement($("
").appendTo(this.contentEl)); this.toolbarsManager.proxyCall('activateButton', viewType); } if(this.view){ if(this.view.get('businessHourGenerator')!==this.businessHourGenerator){ this.view.set('businessHourGenerator', this.businessHourGenerator); } this.view.setDate(this.currentDate); if(newView){ newView.stopBatchRender(); }} this.thawContentHeight(); }; Calendar.prototype.clearView=function (){ var currentView=this.view; this.toolbarsManager.proxyCall('deactivateButton', currentView.type); this.unbindViewHandlers(currentView); currentView.removeElement(); currentView.unsetDate(); this.view=null; }; Calendar.prototype.reinitView=function (){ var oldView=this.view; var scroll=oldView.queryScroll(); this.freezeContentHeight(); this.clearView(); this.calcSize(); this.renderView(oldView.type); this.view.applyScroll(scroll); this.thawContentHeight(); }; Calendar.prototype.getSuggestedViewHeight=function (){ if(this.suggestedViewHeight==null){ this.calcSize(); } return this.suggestedViewHeight; }; Calendar.prototype.isHeightAuto=function (){ return this.opt('contentHeight')==='auto'||this.opt('height')==='auto'; }; Calendar.prototype.updateViewSize=function (isResize){ if(isResize===void 0){ isResize=false; } var view=this.view; var scroll; if(!this.ignoreUpdateViewSize&&view){ if(isResize){ this.calcSize(); scroll=view.queryScroll(); } this.ignoreUpdateViewSize++; view.updateSize(this.getSuggestedViewHeight(), this.isHeightAuto(), isResize); this.ignoreUpdateViewSize--; if(isResize){ view.applyScroll(scroll); } return true; }}; Calendar.prototype.calcSize=function (){ if(this.elementVisible()){ this._calcSize(); }}; Calendar.prototype._calcSize=function (){ var contentHeightInput=this.opt('contentHeight'); var heightInput=this.opt('height'); if(typeof contentHeightInput==='number'){ this.suggestedViewHeight=contentHeightInput; } else if(typeof contentHeightInput==='function'){ this.suggestedViewHeight=contentHeightInput(); } else if(typeof heightInput==='number'){ this.suggestedViewHeight=heightInput - this.queryToolbarsHeight(); } else if(typeof heightInput==='function'){ this.suggestedViewHeight=heightInput() - this.queryToolbarsHeight(); } else if(heightInput==='parent'){ this.suggestedViewHeight=this.el.parent().height() - this.queryToolbarsHeight(); }else{ this.suggestedViewHeight=Math.round(this.contentEl.width() / Math.max(this.opt('aspectRatio'), .5)); }}; Calendar.prototype.windowResize=function (ev){ if(ev.target===window && this.view && this.view.isDatesRendered){ if(this.updateViewSize(true)){ this.publiclyTrigger('windowResize', [this.view]); }} }; Calendar.prototype.freezeContentHeight=function (){ if(!(this.freezeContentHeightDepth++)){ this.forceFreezeContentHeight(); }}; Calendar.prototype.forceFreezeContentHeight=function (){ this.contentEl.css({ width: '100%', height: this.contentEl.height(), overflow: 'hidden' }); }; Calendar.prototype.thawContentHeight=function (){ this.freezeContentHeightDepth--; this.contentEl.css({ width: '', height: '', overflow: '' }); if(this.freezeContentHeightDepth){ this.forceFreezeContentHeight(); }}; Calendar.prototype.initToolbars=function (){ this.header=new Toolbar_1.default(this, this.computeHeaderOptions()); this.footer=new Toolbar_1.default(this, this.computeFooterOptions()); this.toolbarsManager=new Iterator_1.default([this.header, this.footer]); }; Calendar.prototype.computeHeaderOptions=function (){ return { extraClasses: 'fc-header-toolbar', layout: this.opt('header') };}; Calendar.prototype.computeFooterOptions=function (){ return { extraClasses: 'fc-footer-toolbar', layout: this.opt('footer') };}; Calendar.prototype.renderHeader=function (){ var header=this.header; header.setToolbarOptions(this.computeHeaderOptions()); header.render(); if(header.el){ this.el.prepend(header.el); }}; Calendar.prototype.renderFooter=function (){ var footer=this.footer; footer.setToolbarOptions(this.computeFooterOptions()); footer.render(); if(footer.el){ this.el.append(footer.el); }}; Calendar.prototype.setToolbarsTitle=function (title){ this.toolbarsManager.proxyCall('updateTitle', title); }; Calendar.prototype.updateToolbarButtons=function (dateProfile){ var now=this.getNow(); var view=this.view; var todayInfo=view.dateProfileGenerator.build(now); var prevInfo=view.dateProfileGenerator.buildPrev(view.get('dateProfile')); var nextInfo=view.dateProfileGenerator.buildNext(view.get('dateProfile')); this.toolbarsManager.proxyCall((todayInfo.isValid&&!dateProfile.currentUnzonedRange.containsDate(now)) ? 'enableButton' : 'disableButton', 'today'); this.toolbarsManager.proxyCall(prevInfo.isValid ? 'enableButton' : 'disableButton', 'prev'); this.toolbarsManager.proxyCall(nextInfo.isValid ? 'enableButton' : 'disableButton', 'next'); }; Calendar.prototype.queryToolbarsHeight=function (){ return this.toolbarsManager.items.reduce(function (accumulator, toolbar){ var toolbarHeight=toolbar.el ? toolbar.el.outerHeight(true):0; return accumulator + toolbarHeight; }, 0); }; Calendar.prototype.select=function (zonedStartInput, zonedEndInput){ this.view.select(this.buildSelectFootprint.apply(this, arguments)); }; Calendar.prototype.unselect=function (){ if(this.view){ this.view.unselect(); }}; Calendar.prototype.buildSelectFootprint=function (zonedStartInput, zonedEndInput){ var start=this.moment(zonedStartInput).stripZone(); var end; if(zonedEndInput){ end=this.moment(zonedEndInput).stripZone(); } else if(start.hasTime()){ end=start.clone().add(this.defaultTimedEventDuration); }else{ end=start.clone().add(this.defaultAllDayEventDuration); } return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), !start.hasTime()); }; Calendar.prototype.initMomentInternals=function (){ var _this=this; this.defaultAllDayEventDuration=moment.duration(this.opt('defaultAllDayEventDuration')); this.defaultTimedEventDuration=moment.duration(this.opt('defaultTimedEventDuration')); this.optionsManager.watch('buildingMomentLocale', [ '?locale', '?monthNames', '?monthNamesShort', '?dayNames', '?dayNamesShort', '?firstDay', '?weekNumberCalculation' ], function (opts){ var weekNumberCalculation=opts.weekNumberCalculation; var firstDay=opts.firstDay; var _week; if(weekNumberCalculation==='iso'){ weekNumberCalculation='ISO'; } var localeData=Object.create(locale_1.getMomentLocaleData(opts.locale) ); if(opts.monthNames){ localeData._months=opts.monthNames; } if(opts.monthNamesShort){ localeData._monthsShort=opts.monthNamesShort; } if(opts.dayNames){ localeData._weekdays=opts.dayNames; } if(opts.dayNamesShort){ localeData._weekdaysShort=opts.dayNamesShort; } if(firstDay==null&&weekNumberCalculation==='ISO'){ firstDay=1; } if(firstDay!=null){ _week=Object.create(localeData._week); _week.dow=firstDay; localeData._week=_week; } if(weekNumberCalculation==='ISO' || weekNumberCalculation==='local' || typeof weekNumberCalculation==='function'){ localeData._fullCalendar_weekCalc=weekNumberCalculation; } _this.localeData=localeData; if(_this.currentDate){ _this.localizeMoment(_this.currentDate); }}); }; Calendar.prototype.moment=function (){ var args=[]; for (var _i=0; _i < arguments.length; _i++){ args[_i]=arguments[_i]; } var mom; if(this.opt('timezone')==='local'){ mom=moment_ext_1.default.apply(null, args); if(mom.hasTime()){ mom.local(); }} else if(this.opt('timezone')==='UTC'){ mom=moment_ext_1.default.utc.apply(null, args); }else{ mom=moment_ext_1.default.parseZone.apply(null, args); } this.localizeMoment(mom); return mom; }; Calendar.prototype.msToMoment=function (ms, forceAllDay){ var mom=moment_ext_1.default.utc(ms); if(forceAllDay){ mom.stripTime(); }else{ mom=this.applyTimezone(mom); } this.localizeMoment(mom); return mom; }; Calendar.prototype.msToUtcMoment=function (ms, forceAllDay){ var mom=moment_ext_1.default.utc(ms); if(forceAllDay){ mom.stripTime(); } this.localizeMoment(mom); return mom; }; Calendar.prototype.localizeMoment=function (mom){ mom._locale=this.localeData; }; Calendar.prototype.getIsAmbigTimezone=function (){ return this.opt('timezone')!=='local'&&this.opt('timezone')!=='UTC'; }; Calendar.prototype.applyTimezone=function (date){ if(!date.hasTime()){ return date.clone(); } var zonedDate=this.moment(date.toArray()); var timeAdjust=date.time().asMilliseconds() - zonedDate.time().asMilliseconds(); var adjustedZonedDate; if(timeAdjust){ adjustedZonedDate=zonedDate.clone().add(timeAdjust); if(date.time().asMilliseconds() - adjustedZonedDate.time().asMilliseconds()===0){ zonedDate=adjustedZonedDate; }} return zonedDate; }; Calendar.prototype.footprintToDateProfile=function (componentFootprint, ignoreEnd){ if(ignoreEnd===void 0){ ignoreEnd=false; } var start=moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs); var end; if(!ignoreEnd){ end=moment_ext_1.default.utc(componentFootprint.unzonedRange.endMs); } if(componentFootprint.isAllDay){ start.stripTime(); if(end){ end.stripTime(); }}else{ start=this.applyTimezone(start); if(end){ end=this.applyTimezone(end); }} return new EventDateProfile_1.default(start, end, this); }; Calendar.prototype.getNow=function (){ var now=this.opt('now'); if(typeof now==='function'){ now=now(); } return this.moment(now).stripZone(); }; Calendar.prototype.humanizeDuration=function (duration){ return duration.locale(this.opt('locale')).humanize(); }; Calendar.prototype.parseUnzonedRange=function (rangeInput){ var start=null; var end=null; if(rangeInput.start){ start=this.moment(rangeInput.start).stripZone(); } if(rangeInput.end){ end=this.moment(rangeInput.end).stripZone(); } if(!start&&!end){ return null; } if(start&&end&&end.isBefore(start)){ return null; } return new UnzonedRange_1.default(start, end); }; Calendar.prototype.initEventManager=function (){ var _this=this; var eventManager=new EventManager_1.default(this); var rawSources=this.opt('eventSources')||[]; var singleRawSource=this.opt('events'); this.eventManager=eventManager; if(singleRawSource){ rawSources.unshift(singleRawSource); } eventManager.on('release', function (eventsPayload){ _this.trigger('eventsReset', eventsPayload); }); eventManager.freeze(); rawSources.forEach(function (rawSource){ var source=EventSourceParser_1.default.parse(rawSource, _this); if(source){ eventManager.addSource(source); }}); eventManager.thaw(); }; Calendar.prototype.requestEvents=function (start, end){ return this.eventManager.requestEvents(start, end, this.opt('timezone'), !this.opt('lazyFetching')); }; Calendar.prototype.getEventEnd=function (event){ if(event.end){ return event.end.clone(); }else{ return this.getDefaultEventEnd(event.allDay, event.start); }}; Calendar.prototype.getDefaultEventEnd=function (allDay, zonedStart){ var end=zonedStart.clone(); if(allDay){ end.stripTime().add(this.defaultAllDayEventDuration); }else{ end.add(this.defaultTimedEventDuration); } if(this.getIsAmbigTimezone()){ end.stripZone(); } return end; }; Calendar.prototype.rerenderEvents=function (){ this.view.flash('displayingEvents'); }; Calendar.prototype.refetchEvents=function (){ this.eventManager.refetchAllSources(); }; Calendar.prototype.renderEvents=function (eventInputs, isSticky){ this.eventManager.freeze(); for (var i=0; i < eventInputs.length; i++){ this.renderEvent(eventInputs[i], isSticky); } this.eventManager.thaw(); }; Calendar.prototype.renderEvent=function (eventInput, isSticky){ if(isSticky===void 0){ isSticky=false; } var eventManager=this.eventManager; var eventDef=EventDefParser_1.default.parse(eventInput, eventInput.source||eventManager.stickySource); if(eventDef){ eventManager.addEventDef(eventDef, isSticky); }}; Calendar.prototype.removeEvents=function (legacyQuery){ var eventManager=this.eventManager; var legacyInstances=[]; var idMap={}; var eventDef; var i; if(legacyQuery==null){ eventManager.removeAllEventDefs(); }else{ eventManager.getEventInstances().forEach(function (eventInstance){ legacyInstances.push(eventInstance.toLegacy()); }); legacyInstances=filterLegacyEventInstances(legacyInstances, legacyQuery); for (i=0; i < legacyInstances.length; i++){ eventDef=this.eventManager.getEventDefByUid(legacyInstances[i]._id); idMap[eventDef.id]=true; } eventManager.freeze(); for (i in idMap){ eventManager.removeEventDefsById(i); } eventManager.thaw(); }}; Calendar.prototype.clientEvents=function (legacyQuery){ var legacyEventInstances=[]; this.eventManager.getEventInstances().forEach(function (eventInstance){ legacyEventInstances.push(eventInstance.toLegacy()); }); return filterLegacyEventInstances(legacyEventInstances, legacyQuery); }; Calendar.prototype.updateEvents=function (eventPropsArray){ this.eventManager.freeze(); for (var i=0; i < eventPropsArray.length; i++){ this.updateEvent(eventPropsArray[i]); } this.eventManager.thaw(); }; Calendar.prototype.updateEvent=function (eventProps){ var eventDef=this.eventManager.getEventDefByUid(eventProps._id); var eventInstance; var eventDefMutation; if(eventDef instanceof SingleEventDef_1.default){ eventInstance=eventDef.buildInstance(); eventDefMutation=EventDefMutation_1.default.createFromRawProps(eventInstance, eventProps, null ); this.eventManager.mutateEventsWithId(eventDef.id, eventDefMutation); }}; Calendar.prototype.getEventSources=function (){ return this.eventManager.otherSources.slice(); }; Calendar.prototype.getEventSourceById=function (id){ return this.eventManager.getSourceById(EventSource_1.default.normalizeId(id)); }; Calendar.prototype.addEventSource=function (sourceInput){ var source=EventSourceParser_1.default.parse(sourceInput, this); if(source){ this.eventManager.addSource(source); }}; Calendar.prototype.removeEventSources=function (sourceMultiQuery){ var eventManager=this.eventManager; var sources; var i; if(sourceMultiQuery==null){ this.eventManager.removeAllSources(); }else{ sources=eventManager.multiQuerySources(sourceMultiQuery); eventManager.freeze(); for (i=0; i < sources.length; i++){ eventManager.removeSource(sources[i]); } eventManager.thaw(); }}; Calendar.prototype.removeEventSource=function (sourceQuery){ var eventManager=this.eventManager; var sources=eventManager.querySources(sourceQuery); var i; eventManager.freeze(); for (i=0; i < sources.length; i++){ eventManager.removeSource(sources[i]); } eventManager.thaw(); }; Calendar.prototype.refetchEventSources=function (sourceMultiQuery){ var eventManager=this.eventManager; var sources=eventManager.multiQuerySources(sourceMultiQuery); var i; eventManager.freeze(); for (i=0; i < sources.length; i++){ eventManager.refetchSource(sources[i]); } eventManager.thaw(); }; Calendar.defaults=options_1.globalDefaults; Calendar.englishDefaults=options_1.englishDefaults; Calendar.rtlDefaults=options_1.rtlDefaults; return Calendar; }()); exports.default=Calendar; EmitterMixin_1.default.mixInto(Calendar); ListenerMixin_1.default.mixInto(Calendar); function filterLegacyEventInstances(legacyEventInstances, legacyQuery){ if(legacyQuery==null){ return legacyEventInstances; } else if($.isFunction(legacyQuery)){ return legacyEventInstances.filter(legacyQuery); }else{ legacyQuery +=''; return legacyEventInstances.filter(function (legacyEventInstance){ return legacyEventInstance.id==legacyQuery || legacyEventInstance._id===legacyQuery; }); }} }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var moment=__webpack_require__(0); var util_1=__webpack_require__(4); var UnzonedRange_1=__webpack_require__(5); var DateProfileGenerator= (function (){ function DateProfileGenerator(_view){ this._view=_view; } DateProfileGenerator.prototype.opt=function (name){ return this._view.opt(name); }; DateProfileGenerator.prototype.trimHiddenDays=function (unzonedRange){ return this._view.trimHiddenDays(unzonedRange); }; DateProfileGenerator.prototype.msToUtcMoment=function (ms, forceAllDay){ return this._view.calendar.msToUtcMoment(ms, forceAllDay); }; DateProfileGenerator.prototype.buildPrev=function (currentDateProfile){ var prevDate=currentDateProfile.date.clone() .startOf(currentDateProfile.currentRangeUnit) .subtract(currentDateProfile.dateIncrement); return this.build(prevDate, -1); }; DateProfileGenerator.prototype.buildNext=function (currentDateProfile){ var nextDate=currentDateProfile.date.clone() .startOf(currentDateProfile.currentRangeUnit) .add(currentDateProfile.dateIncrement); return this.build(nextDate, 1); }; DateProfileGenerator.prototype.build=function (date, direction, forceToValid){ if(forceToValid===void 0){ forceToValid=false; } var isDateAllDay = !date.hasTime(); var validUnzonedRange; var minTime=null; var maxTime=null; var currentInfo; var isRangeAllDay; var renderUnzonedRange; var activeUnzonedRange; var isValid; validUnzonedRange=this.buildValidRange(); validUnzonedRange=this.trimHiddenDays(validUnzonedRange); if(forceToValid){ date=this.msToUtcMoment(validUnzonedRange.constrainDate(date), isDateAllDay); } currentInfo=this.buildCurrentRangeInfo(date, direction); isRangeAllDay=/^(year|month|week|day)$/.test(currentInfo.unit); renderUnzonedRange=this.buildRenderRange(this.trimHiddenDays(currentInfo.unzonedRange), currentInfo.unit, isRangeAllDay); renderUnzonedRange=this.trimHiddenDays(renderUnzonedRange); activeUnzonedRange=renderUnzonedRange.clone(); if(!this.opt('showNonCurrentDates')){ activeUnzonedRange=activeUnzonedRange.intersect(currentInfo.unzonedRange); } minTime=moment.duration(this.opt('minTime')); maxTime=moment.duration(this.opt('maxTime')); activeUnzonedRange=this.adjustActiveRange(activeUnzonedRange, minTime, maxTime); activeUnzonedRange=activeUnzonedRange.intersect(validUnzonedRange); if(activeUnzonedRange){ date=this.msToUtcMoment(activeUnzonedRange.constrainDate(date), isDateAllDay); } isValid=currentInfo.unzonedRange.intersectsWith(validUnzonedRange); return { validUnzonedRange: validUnzonedRange, currentUnzonedRange: currentInfo.unzonedRange, currentRangeUnit: currentInfo.unit, isRangeAllDay: isRangeAllDay, activeUnzonedRange: activeUnzonedRange, renderUnzonedRange: renderUnzonedRange, minTime: minTime, maxTime: maxTime, isValid: isValid, date: date, dateIncrement: this.buildDateIncrement(currentInfo.duration) };}; DateProfileGenerator.prototype.buildValidRange=function (){ return this._view.getUnzonedRangeOption('validRange', this._view.calendar.getNow()) || new UnzonedRange_1.default(); }; DateProfileGenerator.prototype.buildCurrentRangeInfo=function (date, direction){ var viewSpec=this._view.viewSpec; var duration=null; var unit=null; var unzonedRange=null; var dayCount; if(viewSpec.duration){ duration=viewSpec.duration; unit=viewSpec.durationUnit; unzonedRange=this.buildRangeFromDuration(date, direction, duration, unit); } else if((dayCount=this.opt('dayCount'))){ unit='day'; unzonedRange=this.buildRangeFromDayCount(date, direction, dayCount); } else if((unzonedRange=this.buildCustomVisibleRange(date))){ unit=util_1.computeGreatestUnit(unzonedRange.getStart(), unzonedRange.getEnd()); }else{ duration=this.getFallbackDuration(); unit=util_1.computeGreatestUnit(duration); unzonedRange=this.buildRangeFromDuration(date, direction, duration, unit); } return { duration: duration, unit: unit, unzonedRange: unzonedRange };}; DateProfileGenerator.prototype.getFallbackDuration=function (){ return moment.duration({ days: 1 }); }; DateProfileGenerator.prototype.adjustActiveRange=function (unzonedRange, minTime, maxTime){ var start=unzonedRange.getStart(); var end=unzonedRange.getEnd(); if(this._view.usesMinMaxTime){ if(minTime < 0){ start.time(0).add(minTime); } if(maxTime > 24 * 60 * 60 * 1000){ end.time(maxTime - (24 * 60 * 60 * 1000)); }} return new UnzonedRange_1.default(start, end); }; DateProfileGenerator.prototype.buildRangeFromDuration=function (date, direction, duration, unit){ var alignment=this.opt('dateAlignment'); var dateIncrementInput; var dateIncrementDuration; var start; var end; var res; if(!alignment){ dateIncrementInput=this.opt('dateIncrement'); if(dateIncrementInput){ dateIncrementDuration=moment.duration(dateIncrementInput); if(dateIncrementDuration < duration){ alignment=util_1.computeDurationGreatestUnit(dateIncrementDuration, dateIncrementInput); }else{ alignment=unit; }}else{ alignment=unit; }} if(duration.as('days') <=1){ if(this._view.isHiddenDay(start)){ start=this._view.skipHiddenDays(start, direction); start.startOf('day'); }} function computeRes(){ start=date.clone().startOf(alignment); end=start.clone().add(duration); res=new UnzonedRange_1.default(start, end); } computeRes(); if(!this.trimHiddenDays(res)){ date=this._view.skipHiddenDays(date, direction); computeRes(); } return res; }; DateProfileGenerator.prototype.buildRangeFromDayCount=function (date, direction, dayCount){ var customAlignment=this.opt('dateAlignment'); var runningCount=0; var start=date.clone(); var end; if(customAlignment){ start.startOf(customAlignment); } start.startOf('day'); start=this._view.skipHiddenDays(start, direction); end=start.clone(); do { end.add(1, 'day'); if(!this._view.isHiddenDay(end)){ runningCount++; }} while (runningCount < dayCount); return new UnzonedRange_1.default(start, end); }; DateProfileGenerator.prototype.buildCustomVisibleRange=function (date){ var visibleUnzonedRange=this._view.getUnzonedRangeOption('visibleRange', this._view.calendar.applyTimezone(date) ); if(visibleUnzonedRange&&(visibleUnzonedRange.startMs==null||visibleUnzonedRange.endMs==null)){ return null; } return visibleUnzonedRange; }; DateProfileGenerator.prototype.buildRenderRange=function (currentUnzonedRange, currentRangeUnit, isRangeAllDay){ return currentUnzonedRange.clone(); }; DateProfileGenerator.prototype.buildDateIncrement=function (fallback){ var dateIncrementInput=this.opt('dateIncrement'); var customAlignment; if(dateIncrementInput){ return moment.duration(dateIncrementInput); } else if((customAlignment=this.opt('dateAlignment'))){ return moment.duration(1, customAlignment); } else if(fallback){ return fallback; }else{ return moment.duration({ days: 1 }); }}; return DateProfileGenerator; }()); exports.default=DateProfileGenerator; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var moment=__webpack_require__(0); var exportHooks=__webpack_require__(16); var util_1=__webpack_require__(4); var moment_ext_1=__webpack_require__(10); var ListenerMixin_1=__webpack_require__(7); var HitDragListener_1=__webpack_require__(23); var SingleEventDef_1=__webpack_require__(13); var EventInstanceGroup_1=__webpack_require__(18); var EventSource_1=__webpack_require__(6); var Interaction_1=__webpack_require__(15); var ExternalDropping= (function (_super){ tslib_1.__extends(ExternalDropping, _super); function ExternalDropping(){ var _this=_super!==null&&_super.apply(this, arguments)||this; _this.isDragging=false; return _this; } ExternalDropping.prototype.end=function (){ if(this.dragListener){ this.dragListener.endInteraction(); }}; ExternalDropping.prototype.bindToDocument=function (){ this.listenTo($(document), { dragstart: this.handleDragStart, sortstart: this.handleDragStart }); }; ExternalDropping.prototype.unbindFromDocument=function (){ this.stopListeningTo($(document)); }; ExternalDropping.prototype.handleDragStart=function (ev, ui){ var el; var accept; if(this.opt('droppable')){ el=$((ui ? ui.item:null)||ev.target); accept=this.opt('dropAccept'); if($.isFunction(accept) ? accept.call(el[0], el):el.is(accept)){ if(!this.isDragging){ this.listenToExternalDrag(el, ev, ui); }} }}; ExternalDropping.prototype.listenToExternalDrag=function (el, ev, ui){ var _this=this; var component=this.component; var view=this.view; var meta=getDraggedElMeta(el); var singleEventDef; var dragListener=this.dragListener=new HitDragListener_1.default(component, { interactionStart: function (){ _this.isDragging=true; }, hitOver: function (hit){ var isAllowed=true; var hitFootprint=hit.component.getSafeHitFootprint(hit); var mutatedEventInstanceGroup; if(hitFootprint){ singleEventDef=_this.computeExternalDrop(hitFootprint, meta); if(singleEventDef){ mutatedEventInstanceGroup=new EventInstanceGroup_1.default(singleEventDef.buildInstances()); isAllowed=meta.eventProps ? component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup) : component.isExternalInstanceGroupAllowed(mutatedEventInstanceGroup); }else{ isAllowed=false; }}else{ isAllowed=false; } if(!isAllowed){ singleEventDef=null; util_1.disableCursor(); } if(singleEventDef){ component.renderDrag(component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, view.calendar))); }}, hitOut: function (){ singleEventDef=null; }, hitDone: function (){ util_1.enableCursor(); component.unrenderDrag(); }, interactionEnd: function (ev){ if(singleEventDef){ view.reportExternalDrop(singleEventDef, Boolean(meta.eventProps), Boolean(meta.stick), el, ev, ui); } _this.isDragging=false; _this.dragListener=null; }}); dragListener.startDrag(ev); }; ExternalDropping.prototype.computeExternalDrop=function (componentFootprint, meta){ var calendar=this.view.calendar; var start=moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs).stripZone(); var end; var eventDef; if(componentFootprint.isAllDay){ if(meta.startTime){ start.time(meta.startTime); }else{ start.stripTime(); }} if(meta.duration){ end=start.clone().add(meta.duration); } start=calendar.applyTimezone(start); if(end){ end=calendar.applyTimezone(end); } eventDef=SingleEventDef_1.default.parse($.extend({}, meta.eventProps, { start: start, end: end }), new EventSource_1.default(calendar)); return eventDef; }; return ExternalDropping; }(Interaction_1.default)); exports.default=ExternalDropping; ListenerMixin_1.default.mixInto(ExternalDropping); exportHooks.dataAttrPrefix=''; function getDraggedElMeta(el){ var prefix=exportHooks.dataAttrPrefix; var eventProps; var startTime; var duration; var stick; if(prefix){ prefix +='-'; } eventProps=el.data(prefix + 'event')||null; if(eventProps){ if(typeof eventProps==='object'){ eventProps=$.extend({}, eventProps); }else{ eventProps={};} startTime=eventProps.start; if(startTime==null){ startTime=eventProps.time; } duration=eventProps.duration; stick=eventProps.stick; delete eventProps.start; delete eventProps.time; delete eventProps.duration; delete eventProps.stick; } if(startTime==null){ startTime=el.data(prefix + 'start'); } if(startTime==null){ startTime=el.data(prefix + 'time'); } if(duration==null){ duration=el.data(prefix + 'duration'); } if(stick==null){ stick=el.data(prefix + 'stick'); } startTime=startTime!=null ? moment.duration(startTime):null; duration=duration!=null ? moment.duration(duration):null; stick=Boolean(stick); return { eventProps: eventProps, startTime: startTime, duration: duration, stick: stick };} }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var EventDefMutation_1=__webpack_require__(37); var EventDefDateMutation_1=__webpack_require__(50); var HitDragListener_1=__webpack_require__(23); var Interaction_1=__webpack_require__(15); var EventResizing= (function (_super){ tslib_1.__extends(EventResizing, _super); function EventResizing(component, eventPointing){ var _this=_super.call(this, component)||this; _this.isResizing=false; _this.eventPointing=eventPointing; return _this; } EventResizing.prototype.end=function (){ if(this.dragListener){ this.dragListener.endInteraction(); }}; EventResizing.prototype.bindToEl=function (el){ var component=this.component; component.bindSegHandlerToEl(el, 'mousedown', this.handleMouseDown.bind(this)); component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this)); }; EventResizing.prototype.handleMouseDown=function (seg, ev){ if(this.component.canStartResize(seg, ev)){ this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer')) .startInteraction(ev, { distance: 5 }); }}; EventResizing.prototype.handleTouchStart=function (seg, ev){ if(this.component.canStartResize(seg, ev)){ this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer')) .startInteraction(ev); }}; EventResizing.prototype.buildDragListener=function (seg, isStart){ var _this=this; var component=this.component; var view=this.view; var calendar=view.calendar; var eventManager=calendar.eventManager; var el=seg.el; var eventDef=seg.footprint.eventDef; var eventInstance=seg.footprint.eventInstance; var isDragging; var resizeMutation; var dragListener=this.dragListener=new HitDragListener_1.default(component, { scroll: this.opt('dragScroll'), subjectEl: el, interactionStart: function (){ isDragging=false; }, dragStart: function (ev){ isDragging=true; _this.eventPointing.handleMouseout(seg, ev); _this.segResizeStart(seg, ev); }, hitOver: function (hit, isOrig, origHit){ var isAllowed=true; var origHitFootprint=component.getSafeHitFootprint(origHit); var hitFootprint=component.getSafeHitFootprint(hit); var mutatedEventInstanceGroup; if(origHitFootprint&&hitFootprint){ resizeMutation=isStart ? _this.computeEventStartResizeMutation(origHitFootprint, hitFootprint, seg.footprint) : _this.computeEventEndResizeMutation(origHitFootprint, hitFootprint, seg.footprint); if(resizeMutation){ mutatedEventInstanceGroup=eventManager.buildMutatedEventInstanceGroup(eventDef.id, resizeMutation); isAllowed=component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup); }else{ isAllowed=false; }}else{ isAllowed=false; } if(!isAllowed){ resizeMutation=null; util_1.disableCursor(); } else if(resizeMutation.isEmpty()){ resizeMutation=null; } if(resizeMutation){ view.hideEventsWithId(seg.footprint.eventDef.id); view.renderEventResize(component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg); }}, hitOut: function (){ resizeMutation=null; }, hitDone: function (){ view.unrenderEventResize(seg); view.showEventsWithId(seg.footprint.eventDef.id); util_1.enableCursor(); }, interactionEnd: function (ev){ if(isDragging){ _this.segResizeStop(seg, ev); } if(resizeMutation){ view.reportEventResize(eventInstance, resizeMutation, el, ev); } _this.dragListener=null; }}); return dragListener; }; EventResizing.prototype.segResizeStart=function (seg, ev){ this.isResizing=true; this.component.publiclyTrigger('eventResizeStart', { context: seg.el[0], args: [ seg.footprint.getEventLegacy(), ev, {}, this.view ] }); }; EventResizing.prototype.segResizeStop=function (seg, ev){ this.isResizing=false; this.component.publiclyTrigger('eventResizeStop', { context: seg.el[0], args: [ seg.footprint.getEventLegacy(), ev, {}, this.view ] }); }; EventResizing.prototype.computeEventStartResizeMutation=function (startFootprint, endFootprint, origEventFootprint){ var origRange=origEventFootprint.componentFootprint.unzonedRange; var startDelta=this.component.diffDates(endFootprint.unzonedRange.getStart(), startFootprint.unzonedRange.getStart()); var dateMutation; var eventDefMutation; if(origRange.getStart().add(startDelta) < origRange.getEnd()){ dateMutation=new EventDefDateMutation_1.default(); dateMutation.setStartDelta(startDelta); eventDefMutation=new EventDefMutation_1.default(); eventDefMutation.setDateMutation(dateMutation); return eventDefMutation; } return false; }; EventResizing.prototype.computeEventEndResizeMutation=function (startFootprint, endFootprint, origEventFootprint){ var origRange=origEventFootprint.componentFootprint.unzonedRange; var endDelta=this.component.diffDates(endFootprint.unzonedRange.getEnd(), startFootprint.unzonedRange.getEnd()); var dateMutation; var eventDefMutation; if(origRange.getEnd().add(endDelta) > origRange.getStart()){ dateMutation=new EventDefDateMutation_1.default(); dateMutation.setEndDelta(endDelta); eventDefMutation=new EventDefMutation_1.default(); eventDefMutation.setDateMutation(dateMutation); return eventDefMutation; } return false; }; return EventResizing; }(Interaction_1.default)); exports.default=EventResizing; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var util_1=__webpack_require__(4); var EventDefMutation_1=__webpack_require__(37); var EventDefDateMutation_1=__webpack_require__(50); var DragListener_1=__webpack_require__(54); var HitDragListener_1=__webpack_require__(23); var MouseFollower_1=__webpack_require__(244); var Interaction_1=__webpack_require__(15); var EventDragging= (function (_super){ tslib_1.__extends(EventDragging, _super); function EventDragging(component, eventPointing){ var _this=_super.call(this, component)||this; _this.isDragging=false; _this.eventPointing=eventPointing; return _this; } EventDragging.prototype.end=function (){ if(this.dragListener){ this.dragListener.endInteraction(); }}; EventDragging.prototype.getSelectionDelay=function (){ var delay=this.opt('eventLongPressDelay'); if(delay==null){ delay=this.opt('longPressDelay'); } return delay; }; EventDragging.prototype.bindToEl=function (el){ var component=this.component; component.bindSegHandlerToEl(el, 'mousedown', this.handleMousedown.bind(this)); component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this)); }; EventDragging.prototype.handleMousedown=function (seg, ev){ if(!this.component.shouldIgnoreMouse() && this.component.canStartDrag(seg, ev)){ this.buildDragListener(seg).startInteraction(ev, { distance: 5 }); }}; EventDragging.prototype.handleTouchStart=function (seg, ev){ var component=this.component; var settings={ delay: this.view.isEventDefSelected(seg.footprint.eventDef) ? 0:this.getSelectionDelay() }; if(component.canStartDrag(seg, ev)){ this.buildDragListener(seg).startInteraction(ev, settings); } else if(component.canStartSelection(seg, ev)){ this.buildSelectListener(seg).startInteraction(ev, settings); }}; EventDragging.prototype.buildSelectListener=function (seg){ var _this=this; var view=this.view; var eventDef=seg.footprint.eventDef; var eventInstance=seg.footprint.eventInstance; if(this.dragListener){ return this.dragListener; } var dragListener=this.dragListener=new DragListener_1.default({ dragStart: function (ev){ if(dragListener.isTouch && !view.isEventDefSelected(eventDef) && eventInstance){ view.selectEventInstance(eventInstance); }}, interactionEnd: function (ev){ _this.dragListener=null; }}); return dragListener; }; EventDragging.prototype.buildDragListener=function (seg){ var _this=this; var component=this.component; var view=this.view; var calendar=view.calendar; var eventManager=calendar.eventManager; var el=seg.el; var eventDef=seg.footprint.eventDef; var eventInstance=seg.footprint.eventInstance; var isDragging; var mouseFollower; var eventDefMutation; if(this.dragListener){ return this.dragListener; } var dragListener=this.dragListener=new HitDragListener_1.default(view, { scroll: this.opt('dragScroll'), subjectEl: el, subjectCenter: true, interactionStart: function (ev){ seg.component=component; isDragging=false; mouseFollower=new MouseFollower_1.default(seg.el, { additionalClass: 'fc-dragging', parentEl: view.el, opacity: dragListener.isTouch ? null:_this.opt('dragOpacity'), revertDuration: _this.opt('dragRevertDuration'), zIndex: 2 }); mouseFollower.hide(); mouseFollower.start(ev); }, dragStart: function (ev){ if(dragListener.isTouch && !view.isEventDefSelected(eventDef) && eventInstance){ view.selectEventInstance(eventInstance); } isDragging=true; _this.eventPointing.handleMouseout(seg, ev); _this.segDragStart(seg, ev); view.hideEventsWithId(seg.footprint.eventDef.id); }, hitOver: function (hit, isOrig, origHit){ var isAllowed=true; var origFootprint; var footprint; var mutatedEventInstanceGroup; if(seg.hit){ origHit=seg.hit; } origFootprint=origHit.component.getSafeHitFootprint(origHit); footprint=hit.component.getSafeHitFootprint(hit); if(origFootprint&&footprint){ eventDefMutation=_this.computeEventDropMutation(origFootprint, footprint, eventDef); if(eventDefMutation){ mutatedEventInstanceGroup=eventManager.buildMutatedEventInstanceGroup(eventDef.id, eventDefMutation); isAllowed=component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup); }else{ isAllowed=false; }}else{ isAllowed=false; } if(!isAllowed){ eventDefMutation=null; util_1.disableCursor(); } if(eventDefMutation && view.renderDrag(component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg, dragListener.isTouch)){ mouseFollower.hide(); }else{ mouseFollower.show(); } if(isOrig){ eventDefMutation=null; }}, hitOut: function (){ view.unrenderDrag(seg); mouseFollower.show(); eventDefMutation=null; }, hitDone: function (){ util_1.enableCursor(); }, interactionEnd: function (ev){ delete seg.component; mouseFollower.stop(!eventDefMutation, function (){ if(isDragging){ view.unrenderDrag(seg); _this.segDragStop(seg, ev); } view.showEventsWithId(seg.footprint.eventDef.id); if(eventDefMutation){ view.reportEventDrop(eventInstance, eventDefMutation, el, ev); }}); _this.dragListener=null; }}); return dragListener; }; EventDragging.prototype.segDragStart=function (seg, ev){ this.isDragging=true; this.component.publiclyTrigger('eventDragStart', { context: seg.el[0], args: [ seg.footprint.getEventLegacy(), ev, {}, this.view ] }); }; EventDragging.prototype.segDragStop=function (seg, ev){ this.isDragging=false; this.component.publiclyTrigger('eventDragStop', { context: seg.el[0], args: [ seg.footprint.getEventLegacy(), ev, {}, this.view ] }); }; EventDragging.prototype.computeEventDropMutation=function (startFootprint, endFootprint, eventDef){ var eventDefMutation=new EventDefMutation_1.default(); eventDefMutation.setDateMutation(this.computeEventDateMutation(startFootprint, endFootprint)); return eventDefMutation; }; EventDragging.prototype.computeEventDateMutation=function (startFootprint, endFootprint){ var date0=startFootprint.unzonedRange.getStart(); var date1=endFootprint.unzonedRange.getStart(); var clearEnd=false; var forceTimed=false; var forceAllDay=false; var dateDelta; var dateMutation; if(startFootprint.isAllDay!==endFootprint.isAllDay){ clearEnd=true; if(endFootprint.isAllDay){ forceAllDay=true; date0.stripTime(); }else{ forceTimed=true; }} dateDelta=this.component.diffDates(date1, date0); dateMutation=new EventDefDateMutation_1.default(); dateMutation.clearEnd=clearEnd; dateMutation.forceTimed=forceTimed; dateMutation.forceAllDay=forceAllDay; dateMutation.setDateDelta(dateDelta); return dateMutation; }; return EventDragging; }(Interaction_1.default)); exports.default=EventDragging; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var util_1=__webpack_require__(4); var HitDragListener_1=__webpack_require__(23); var ComponentFootprint_1=__webpack_require__(12); var UnzonedRange_1=__webpack_require__(5); var Interaction_1=__webpack_require__(15); var DateSelecting= (function (_super){ tslib_1.__extends(DateSelecting, _super); function DateSelecting(component){ var _this=_super.call(this, component)||this; _this.dragListener=_this.buildDragListener(); return _this; } DateSelecting.prototype.end=function (){ this.dragListener.endInteraction(); }; DateSelecting.prototype.getDelay=function (){ var delay=this.opt('selectLongPressDelay'); if(delay==null){ delay=this.opt('longPressDelay'); } return delay; }; DateSelecting.prototype.bindToEl=function (el){ var _this=this; var component=this.component; var dragListener=this.dragListener; component.bindDateHandlerToEl(el, 'mousedown', function (ev){ if(_this.opt('selectable')&&!component.shouldIgnoreMouse()){ dragListener.startInteraction(ev, { distance: _this.opt('selectMinDistance') }); }}); component.bindDateHandlerToEl(el, 'touchstart', function (ev){ if(_this.opt('selectable')&&!component.shouldIgnoreTouch()){ dragListener.startInteraction(ev, { delay: _this.getDelay() }); }}); util_1.preventSelection(el); }; DateSelecting.prototype.buildDragListener=function (){ var _this=this; var component=this.component; var selectionFootprint; var dragListener=new HitDragListener_1.default(component, { scroll: this.opt('dragScroll'), interactionStart: function (){ selectionFootprint=null; }, dragStart: function (ev){ _this.view.unselect(ev); }, hitOver: function (hit, isOrig, origHit){ var origHitFootprint; var hitFootprint; if(origHit){ origHitFootprint=component.getSafeHitFootprint(origHit); hitFootprint=component.getSafeHitFootprint(hit); if(origHitFootprint&&hitFootprint){ selectionFootprint=_this.computeSelection(origHitFootprint, hitFootprint); }else{ selectionFootprint=null; } if(selectionFootprint){ component.renderSelectionFootprint(selectionFootprint); } else if(selectionFootprint===false){ util_1.disableCursor(); }} }, hitOut: function (){ selectionFootprint=null; component.unrenderSelection(); }, hitDone: function (){ util_1.enableCursor(); }, interactionEnd: function (ev, isCancelled){ if(!isCancelled&&selectionFootprint){ _this.view.reportSelection(selectionFootprint, ev); }} }); return dragListener; }; DateSelecting.prototype.computeSelection=function (footprint0, footprint1){ var wholeFootprint=this.computeSelectionFootprint(footprint0, footprint1); if(wholeFootprint&&!this.isSelectionFootprintAllowed(wholeFootprint)){ return false; } return wholeFootprint; }; DateSelecting.prototype.computeSelectionFootprint=function (footprint0, footprint1){ var ms=[ footprint0.unzonedRange.startMs, footprint0.unzonedRange.endMs, footprint1.unzonedRange.startMs, footprint1.unzonedRange.endMs ]; ms.sort(util_1.compareNumbers); return new ComponentFootprint_1.default(new UnzonedRange_1.default(ms[0], ms[3]), footprint0.isAllDay); }; DateSelecting.prototype.isSelectionFootprintAllowed=function (componentFootprint){ return this.component.dateProfile.validUnzonedRange.containsRange(componentFootprint.unzonedRange) && this.view.calendar.constraints.isSelectionFootprintAllowed(componentFootprint); }; return DateSelecting; }(Interaction_1.default)); exports.default=DateSelecting; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var moment=__webpack_require__(0); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var Scroller_1=__webpack_require__(39); var View_1=__webpack_require__(41); var TimeGrid_1=__webpack_require__(227); var DayGrid_1=__webpack_require__(61); var AGENDA_ALL_DAY_EVENT_LIMIT=5; var agendaTimeGridMethods; var agendaDayGridMethods; var AgendaView= (function (_super){ tslib_1.__extends(AgendaView, _super); function AgendaView(calendar, viewSpec){ var _this=_super.call(this, calendar, viewSpec)||this; _this.usesMinMaxTime=true; _this.timeGrid=_this.instantiateTimeGrid(); _this.addChild(_this.timeGrid); if(_this.opt('allDaySlot')){ _this.dayGrid=_this.instantiateDayGrid(); _this.addChild(_this.dayGrid); } _this.scroller=new Scroller_1.default({ overflowX: 'hidden', overflowY: 'auto' }); return _this; } AgendaView.prototype.instantiateTimeGrid=function (){ var timeGrid=new this.timeGridClass(this); util_1.copyOwnProps(agendaTimeGridMethods, timeGrid); return timeGrid; }; AgendaView.prototype.instantiateDayGrid=function (){ var dayGrid=new this.dayGridClass(this); util_1.copyOwnProps(agendaDayGridMethods, dayGrid); return dayGrid; }; AgendaView.prototype.renderSkeleton=function (){ var timeGridWrapEl; var timeGridEl; this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml()); this.scroller.render(); timeGridWrapEl=this.scroller.el.addClass('fc-time-grid-container'); timeGridEl=$('
').appendTo(timeGridWrapEl); this.el.find('.fc-body > tr > td').append(timeGridWrapEl); this.timeGrid.headContainerEl=this.el.find('.fc-head-container'); this.timeGrid.setElement(timeGridEl); if(this.dayGrid){ this.dayGrid.setElement(this.el.find('.fc-day-grid')); this.dayGrid.bottomCoordPadding=this.dayGrid.el.next('hr').outerHeight(); }}; AgendaView.prototype.unrenderSkeleton=function (){ this.timeGrid.removeElement(); if(this.dayGrid){ this.dayGrid.removeElement(); } this.scroller.destroy(); }; AgendaView.prototype.renderSkeletonHtml=function (){ var theme=this.calendar.theme; return '' + '' + (this.opt('columnHeader') ? '' + '' + '' + '' + '' : '') + '' + '' + '' + '' + '' + '
 
' + (this.dayGrid ? '
' + '
' : '') + '
'; }; AgendaView.prototype.axisStyleAttr=function (){ if(this.axisWidth!=null){ return 'style="width:' + this.axisWidth + 'px"'; } return ''; }; AgendaView.prototype.getNowIndicatorUnit=function (){ return this.timeGrid.getNowIndicatorUnit(); }; AgendaView.prototype.updateSize=function (totalHeight, isAuto, isResize){ var eventLimit; var scrollerHeight; var scrollbarWidths; _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); this.axisWidth=util_1.matchCellWidths(this.el.find('.fc-axis')); if(!this.timeGrid.colEls){ if(!isAuto){ scrollerHeight=this.computeScrollerHeight(totalHeight); this.scroller.setHeight(scrollerHeight); } return; } var noScrollRowEls=this.el.find('.fc-row:not(.fc-scroller *)'); this.timeGrid.bottomRuleEl.hide(); this.scroller.clear(); util_1.uncompensateScroll(noScrollRowEls); if(this.dayGrid){ this.dayGrid.removeSegPopover(); eventLimit=this.opt('eventLimit'); if(eventLimit&&typeof eventLimit!=='number'){ eventLimit=AGENDA_ALL_DAY_EVENT_LIMIT; } if(eventLimit){ this.dayGrid.limitRows(eventLimit); }} if(!isAuto){ scrollerHeight=this.computeScrollerHeight(totalHeight); this.scroller.setHeight(scrollerHeight); scrollbarWidths=this.scroller.getScrollbarWidths(); if(scrollbarWidths.left||scrollbarWidths.right){ util_1.compensateScroll(noScrollRowEls, scrollbarWidths); scrollerHeight=this.computeScrollerHeight(totalHeight); this.scroller.setHeight(scrollerHeight); } this.scroller.lockOverflow(scrollbarWidths); if(this.timeGrid.getTotalSlatHeight() < scrollerHeight){ this.timeGrid.bottomRuleEl.show(); }} }; AgendaView.prototype.computeScrollerHeight=function (totalHeight){ return totalHeight - util_1.subtractInnerElHeight(this.el, this.scroller.el); }; AgendaView.prototype.computeInitialDateScroll=function (){ var scrollTime=moment.duration(this.opt('scrollTime')); var top=this.timeGrid.computeTimeTop(scrollTime); top=Math.ceil(top); if(top){ top++; } return { top: top };}; AgendaView.prototype.queryDateScroll=function (){ return { top: this.scroller.getScrollTop() };}; AgendaView.prototype.applyDateScroll=function (scroll){ if(scroll.top!==undefined){ this.scroller.setScrollTop(scroll.top); }}; AgendaView.prototype.getHitFootprint=function (hit){ return hit.component.getHitFootprint(hit); }; AgendaView.prototype.getHitEl=function (hit){ return hit.component.getHitEl(hit); }; AgendaView.prototype.executeEventRender=function (eventsPayload){ var dayEventsPayload={}; var timedEventsPayload={}; var id; var eventInstanceGroup; for (id in eventsPayload){ eventInstanceGroup=eventsPayload[id]; if(eventInstanceGroup.getEventDef().isAllDay()){ dayEventsPayload[id]=eventInstanceGroup; }else{ timedEventsPayload[id]=eventInstanceGroup; }} this.timeGrid.executeEventRender(timedEventsPayload); if(this.dayGrid){ this.dayGrid.executeEventRender(dayEventsPayload); }}; AgendaView.prototype.renderDrag=function (eventFootprints, seg, isTouch){ var groups=groupEventFootprintsByAllDay(eventFootprints); var renderedHelper=false; renderedHelper=this.timeGrid.renderDrag(groups.timed, seg, isTouch); if(this.dayGrid){ renderedHelper=this.dayGrid.renderDrag(groups.allDay, seg, isTouch)||renderedHelper; } return renderedHelper; }; AgendaView.prototype.renderEventResize=function (eventFootprints, seg, isTouch){ var groups=groupEventFootprintsByAllDay(eventFootprints); this.timeGrid.renderEventResize(groups.timed, seg, isTouch); if(this.dayGrid){ this.dayGrid.renderEventResize(groups.allDay, seg, isTouch); }}; AgendaView.prototype.renderSelectionFootprint=function (componentFootprint){ if(!componentFootprint.isAllDay){ this.timeGrid.renderSelectionFootprint(componentFootprint); } else if(this.dayGrid){ this.dayGrid.renderSelectionFootprint(componentFootprint); }}; return AgendaView; }(View_1.default)); exports.default=AgendaView; AgendaView.prototype.timeGridClass=TimeGrid_1.default; AgendaView.prototype.dayGridClass=DayGrid_1.default; agendaTimeGridMethods={ renderHeadIntroHtml: function (){ var view=this.view; var calendar=view.calendar; var weekStart=calendar.msToUtcMoment(this.dateProfile.renderUnzonedRange.startMs, true); var weekText; if(this.opt('weekNumbers')){ weekText=weekStart.format(this.opt('smallWeekFormat')); return '' + '' + view.buildGotoAnchorHtml({ date: weekStart, type: 'week', forceOff: this.colCnt > 1 }, util_1.htmlEscape(weekText) ) + ''; }else{ return ''; }}, renderBgIntroHtml: function (){ var view=this.view; return ''; }, renderIntroHtml: function (){ var view=this.view; return ''; }}; agendaDayGridMethods={ renderBgIntroHtml: function (){ var view=this.view; return '' + '' + '' + view.getAllDayHtml() + '' + ''; }, renderIntroHtml: function (){ var view=this.view; return ''; }}; function groupEventFootprintsByAllDay(eventFootprints){ var allDay=[]; var timed=[]; var i; for (i=0; i < eventFootprints.length; i++){ if(eventFootprints[i].componentFootprint.isAllDay){ allDay.push(eventFootprints[i]); }else{ timed.push(eventFootprints[i]); }} return { allDay: allDay, timed: timed };} }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var moment=__webpack_require__(0); var util_1=__webpack_require__(4); var InteractiveDateComponent_1=__webpack_require__(40); var BusinessHourRenderer_1=__webpack_require__(56); var StandardInteractionsMixin_1=__webpack_require__(60); var DayTableMixin_1=__webpack_require__(55); var CoordCache_1=__webpack_require__(53); var UnzonedRange_1=__webpack_require__(5); var ComponentFootprint_1=__webpack_require__(12); var TimeGridEventRenderer_1=__webpack_require__(246); var TimeGridHelperRenderer_1=__webpack_require__(247); var TimeGridFillRenderer_1=__webpack_require__(248); var AGENDA_STOCK_SUB_DURATIONS=[ { hours: 1 }, { minutes: 30 }, { minutes: 15 }, { seconds: 30 }, { seconds: 15 } ]; var TimeGrid= (function (_super){ tslib_1.__extends(TimeGrid, _super); function TimeGrid(view){ var _this=_super.call(this, view)||this; _this.processOptions(); return _this; } TimeGrid.prototype.componentFootprintToSegs=function (componentFootprint){ var segs=this.sliceRangeByTimes(componentFootprint.unzonedRange); var i; for (i=0; i < segs.length; i++){ if(this.isRTL){ segs[i].col=this.daysPerRow - 1 - segs[i].dayIndex; }else{ segs[i].col=segs[i].dayIndex; }} return segs; }; TimeGrid.prototype.sliceRangeByTimes=function (unzonedRange){ var segs=[]; var segRange; var dayIndex; for (dayIndex=0; dayIndex < this.daysPerRow; dayIndex++){ segRange=unzonedRange.intersect(this.dayRanges[dayIndex]); if(segRange){ segs.push({ startMs: segRange.startMs, endMs: segRange.endMs, isStart: segRange.isStart, isEnd: segRange.isEnd, dayIndex: dayIndex }); }} return segs; }; TimeGrid.prototype.processOptions=function (){ var slotDuration=this.opt('slotDuration'); var snapDuration=this.opt('snapDuration'); var input; slotDuration=moment.duration(slotDuration); snapDuration=snapDuration ? moment.duration(snapDuration):slotDuration; this.slotDuration=slotDuration; this.snapDuration=snapDuration; this.snapsPerSlot=slotDuration / snapDuration; input=this.opt('slotLabelFormat'); if($.isArray(input)){ input=input[input.length - 1]; } this.labelFormat=input || this.opt('smallTimeFormat'); input=this.opt('slotLabelInterval'); this.labelInterval=input ? moment.duration(input) : this.computeLabelInterval(slotDuration); }; TimeGrid.prototype.computeLabelInterval=function (slotDuration){ var i; var labelInterval; var slotsPerLabel; for (i=AGENDA_STOCK_SUB_DURATIONS.length - 1; i >=0; i--){ labelInterval=moment.duration(AGENDA_STOCK_SUB_DURATIONS[i]); slotsPerLabel=util_1.divideDurationByDuration(labelInterval, slotDuration); if(util_1.isInt(slotsPerLabel)&&slotsPerLabel > 1){ return labelInterval; }} return moment.duration(slotDuration); }; TimeGrid.prototype.renderDates=function (dateProfile){ this.dateProfile=dateProfile; this.updateDayTable(); this.renderSlats(); this.renderColumns(); }; TimeGrid.prototype.unrenderDates=function (){ this.unrenderColumns(); }; TimeGrid.prototype.renderSkeleton=function (){ var theme=this.view.calendar.theme; this.el.html('
' + '
' + ''); this.bottomRuleEl=this.el.find('hr'); }; TimeGrid.prototype.renderSlats=function (){ var theme=this.view.calendar.theme; this.slatContainerEl=this.el.find('> .fc-slats') .html('' + this.renderSlatRowHtml() + '
'); this.slatEls=this.slatContainerEl.find('tr'); this.slatCoordCache=new CoordCache_1.default({ els: this.slatEls, isVertical: true }); }; TimeGrid.prototype.renderSlatRowHtml=function (){ var view=this.view; var calendar=view.calendar; var theme=calendar.theme; var isRTL=this.isRTL; var dateProfile=this.dateProfile; var html=''; var slotTime=moment.duration(+dateProfile.minTime); var slotIterator=moment.duration(0); var slotDate; var isLabeled; var axisHtml; while (slotTime < dateProfile.maxTime){ slotDate=calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs).time(slotTime); isLabeled=util_1.isInt(util_1.divideDurationByDuration(slotIterator, this.labelInterval)); axisHtml = '' + (isLabeled ? '' + util_1.htmlEscape(slotDate.format(this.labelFormat)) + '' : '') + ''; html += '' + (!isRTL ? axisHtml:'') + '' + (isRTL ? axisHtml:'') + ''; slotTime.add(this.slotDuration); slotIterator.add(this.slotDuration); } return html; }; TimeGrid.prototype.renderColumns=function (){ var dateProfile=this.dateProfile; var theme=this.view.calendar.theme; this.dayRanges=this.dayDates.map(function (dayDate){ return new UnzonedRange_1.default(dayDate.clone().add(dateProfile.minTime), dayDate.clone().add(dateProfile.maxTime)); }); if(this.headContainerEl){ this.headContainerEl.html(this.renderHeadHtml()); } this.el.find('> .fc-bg').html('' + this.renderBgTrHtml(0) + '
'); this.colEls=this.el.find('.fc-day, .fc-disabled-day'); this.colCoordCache=new CoordCache_1.default({ els: this.colEls, isHorizontal: true }); this.renderContentSkeleton(); }; TimeGrid.prototype.unrenderColumns=function (){ this.unrenderContentSkeleton(); }; TimeGrid.prototype.renderContentSkeleton=function (){ var cellHtml=''; var i; var skeletonEl; for (i=0; i < this.colCnt; i++){ cellHtml += '' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + ''; } skeletonEl=this.contentSkeletonEl=$('
' + '' + '' + cellHtml + '' + '
' + '
'); this.colContainerEls=skeletonEl.find('.fc-content-col'); this.helperContainerEls=skeletonEl.find('.fc-helper-container'); this.fgContainerEls=skeletonEl.find('.fc-event-container:not(.fc-helper-container)'); this.bgContainerEls=skeletonEl.find('.fc-bgevent-container'); this.highlightContainerEls=skeletonEl.find('.fc-highlight-container'); this.businessContainerEls=skeletonEl.find('.fc-business-container'); this.bookendCells(skeletonEl.find('tr')); this.el.append(skeletonEl); }; TimeGrid.prototype.unrenderContentSkeleton=function (){ if(this.contentSkeletonEl){ this.contentSkeletonEl.remove(); this.contentSkeletonEl=null; this.colContainerEls=null; this.helperContainerEls=null; this.fgContainerEls=null; this.bgContainerEls=null; this.highlightContainerEls=null; this.businessContainerEls=null; }}; TimeGrid.prototype.groupSegsByCol=function (segs){ var segsByCol=[]; var i; for (i=0; i < this.colCnt; i++){ segsByCol.push([]); } for (i=0; i < segs.length; i++){ segsByCol[segs[i].col].push(segs[i]); } return segsByCol; }; TimeGrid.prototype.attachSegsByCol=function (segsByCol, containerEls){ var col; var segs; var i; for (col=0; col < this.colCnt; col++){ segs=segsByCol[col]; for (i=0; i < segs.length; i++){ containerEls.eq(col).append(segs[i].el); }} }; TimeGrid.prototype.getNowIndicatorUnit=function (){ return 'minute'; }; TimeGrid.prototype.renderNowIndicator=function (date){ if(!this.colContainerEls){ return; } var segs=this.componentFootprintToSegs(new ComponentFootprint_1.default(new UnzonedRange_1.default(date, date.valueOf() + 1), false )); var top=this.computeDateTop(date, date); var nodes=[]; var i; for (i=0; i < segs.length; i++){ nodes.push($('
') .css('top', top) .appendTo(this.colContainerEls.eq(segs[i].col))[0]); } if(segs.length > 0){ nodes.push($('
') .css('top', top) .appendTo(this.el.find('.fc-content-skeleton'))[0]); } this.nowIndicatorEls=$(nodes); }; TimeGrid.prototype.unrenderNowIndicator=function (){ if(this.nowIndicatorEls){ this.nowIndicatorEls.remove(); this.nowIndicatorEls=null; }}; TimeGrid.prototype.updateSize=function (totalHeight, isAuto, isResize){ _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); this.slatCoordCache.build(); if(isResize){ this.updateSegVerticals([].concat(this.eventRenderer.getSegs(), this.businessSegs||[])); }}; TimeGrid.prototype.getTotalSlatHeight=function (){ return this.slatContainerEl.outerHeight(); }; TimeGrid.prototype.computeDateTop=function (ms, startOfDayDate){ return this.computeTimeTop(moment.duration(ms - startOfDayDate.clone().stripTime())); }; TimeGrid.prototype.computeTimeTop=function (time){ var len=this.slatEls.length; var dateProfile=this.dateProfile; var slatCoverage=(time - dateProfile.minTime) / this.slotDuration; var slatIndex; var slatRemainder; slatCoverage=Math.max(0, slatCoverage); slatCoverage=Math.min(len, slatCoverage); slatIndex=Math.floor(slatCoverage); slatIndex=Math.min(slatIndex, len - 1); slatRemainder=slatCoverage - slatIndex; return this.slatCoordCache.getTopPosition(slatIndex) + this.slatCoordCache.getHeight(slatIndex) * slatRemainder; }; TimeGrid.prototype.updateSegVerticals=function (segs){ this.computeSegVerticals(segs); this.assignSegVerticals(segs); }; TimeGrid.prototype.computeSegVerticals=function (segs){ var eventMinHeight=this.opt('agendaEventMinHeight'); var i; var seg; var dayDate; for (i=0; i < segs.length; i++){ seg=segs[i]; dayDate=this.dayDates[seg.dayIndex]; seg.top=this.computeDateTop(seg.startMs, dayDate); seg.bottom=Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.endMs, dayDate)); }}; TimeGrid.prototype.assignSegVerticals=function (segs){ var i; var seg; for (i=0; i < segs.length; i++){ seg=segs[i]; seg.el.css(this.generateSegVerticalCss(seg)); }}; TimeGrid.prototype.generateSegVerticalCss=function (seg){ return { top: seg.top, bottom: -seg.bottom };}; TimeGrid.prototype.prepareHits=function (){ this.colCoordCache.build(); this.slatCoordCache.build(); }; TimeGrid.prototype.releaseHits=function (){ this.colCoordCache.clear(); }; TimeGrid.prototype.queryHit=function (leftOffset, topOffset){ var snapsPerSlot=this.snapsPerSlot; var colCoordCache=this.colCoordCache; var slatCoordCache=this.slatCoordCache; if(colCoordCache.isLeftInBounds(leftOffset)&&slatCoordCache.isTopInBounds(topOffset)){ var colIndex=colCoordCache.getHorizontalIndex(leftOffset); var slatIndex=slatCoordCache.getVerticalIndex(topOffset); if(colIndex!=null&&slatIndex!=null){ var slatTop=slatCoordCache.getTopOffset(slatIndex); var slatHeight=slatCoordCache.getHeight(slatIndex); var partial=(topOffset - slatTop) / slatHeight; var localSnapIndex=Math.floor(partial * snapsPerSlot); var snapIndex=slatIndex * snapsPerSlot + localSnapIndex; var snapTop=slatTop + (localSnapIndex / snapsPerSlot) * slatHeight; var snapBottom=slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight; return { col: colIndex, snap: snapIndex, component: this, left: colCoordCache.getLeftOffset(colIndex), right: colCoordCache.getRightOffset(colIndex), top: snapTop, bottom: snapBottom };}} }; TimeGrid.prototype.getHitFootprint=function (hit){ var start=this.getCellDate(0, hit.col); var time=this.computeSnapTime(hit.snap); var end; start.time(time); end=start.clone().add(this.snapDuration); return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), false ); }; TimeGrid.prototype.computeSnapTime=function (snapIndex){ return moment.duration(this.dateProfile.minTime + this.snapDuration * snapIndex); }; TimeGrid.prototype.getHitEl=function (hit){ return this.colEls.eq(hit.col); }; TimeGrid.prototype.renderDrag=function (eventFootprints, seg, isTouch){ var i; if(seg){ if(eventFootprints.length){ this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch); return true; }}else{ for (i=0; i < eventFootprints.length; i++){ this.renderHighlight(eventFootprints[i].componentFootprint); }} }; TimeGrid.prototype.unrenderDrag=function (){ this.unrenderHighlight(); this.helperRenderer.unrender(); }; TimeGrid.prototype.renderEventResize=function (eventFootprints, seg, isTouch){ this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch); }; TimeGrid.prototype.unrenderEventResize=function (){ this.helperRenderer.unrender(); }; TimeGrid.prototype.renderSelectionFootprint=function (componentFootprint){ if(this.opt('selectHelper')){ this.helperRenderer.renderComponentFootprint(componentFootprint); }else{ this.renderHighlight(componentFootprint); }}; TimeGrid.prototype.unrenderSelection=function (){ this.helperRenderer.unrender(); this.unrenderHighlight(); }; return TimeGrid; }(InteractiveDateComponent_1.default)); exports.default=TimeGrid; TimeGrid.prototype.eventRendererClass=TimeGridEventRenderer_1.default; TimeGrid.prototype.businessHourRendererClass=BusinessHourRenderer_1.default; TimeGrid.prototype.helperRendererClass=TimeGridHelperRenderer_1.default; TimeGrid.prototype.fillRendererClass=TimeGridFillRenderer_1.default; StandardInteractionsMixin_1.default.mixInto(TimeGrid); DayTableMixin_1.default.mixInto(TimeGrid); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var UnzonedRange_1=__webpack_require__(5); var DateProfileGenerator_1=__webpack_require__(221); var BasicViewDateProfileGenerator= (function (_super){ tslib_1.__extends(BasicViewDateProfileGenerator, _super); function BasicViewDateProfileGenerator(){ return _super!==null&&_super.apply(this, arguments)||this; } BasicViewDateProfileGenerator.prototype.buildRenderRange=function (currentUnzonedRange, currentRangeUnit, isRangeAllDay){ var renderUnzonedRange=_super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay); var start=this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay); var end=this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay); if(/^(year|month)$/.test(currentRangeUnit)){ start.startOf('week'); if(end.weekday()){ end.add(1, 'week').startOf('week'); }} return new UnzonedRange_1.default(start, end); }; return BasicViewDateProfileGenerator; }(DateProfileGenerator_1.default)); exports.default=BasicViewDateProfileGenerator; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var moment=__webpack_require__(0); var util_1=__webpack_require__(4); var BasicView_1=__webpack_require__(62); var MonthViewDateProfileGenerator_1=__webpack_require__(253); var MonthView= (function (_super){ tslib_1.__extends(MonthView, _super); function MonthView(){ return _super!==null&&_super.apply(this, arguments)||this; } MonthView.prototype.setGridHeight=function (height, isAuto){ if(isAuto){ height *=this.dayGrid.rowCnt / 6; } util_1.distributeHeight(this.dayGrid.rowEls, height, !isAuto); }; MonthView.prototype.isDateInOtherMonth=function (date, dateProfile){ return date.month()!==moment.utc(dateProfile.currentUnzonedRange.startMs).month(); }; return MonthView; }(BasicView_1.default)); exports.default=MonthView; MonthView.prototype.dateProfileGeneratorClass=MonthViewDateProfileGenerator_1.default; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var UnzonedRange_1=__webpack_require__(5); var View_1=__webpack_require__(41); var Scroller_1=__webpack_require__(39); var ListEventRenderer_1=__webpack_require__(254); var ListEventPointing_1=__webpack_require__(255); var ListView= (function (_super){ tslib_1.__extends(ListView, _super); function ListView(calendar, viewSpec){ var _this=_super.call(this, calendar, viewSpec)||this; _this.segSelector='.fc-list-item'; _this.scroller=new Scroller_1.default({ overflowX: 'hidden', overflowY: 'auto' }); return _this; } ListView.prototype.renderSkeleton=function (){ this.el.addClass('fc-list-view ' + this.calendar.theme.getClass('listView')); this.scroller.render(); this.scroller.el.appendTo(this.el); this.contentEl=this.scroller.scrollEl; }; ListView.prototype.unrenderSkeleton=function (){ this.scroller.destroy(); }; ListView.prototype.updateSize=function (totalHeight, isAuto, isResize){ _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); this.scroller.clear(); if(!isAuto){ this.scroller.setHeight(this.computeScrollerHeight(totalHeight)); }}; ListView.prototype.computeScrollerHeight=function (totalHeight){ return totalHeight - util_1.subtractInnerElHeight(this.el, this.scroller.el); }; ListView.prototype.renderDates=function (dateProfile){ var calendar=this.calendar; var dayStart=calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs, true); var viewEnd=calendar.msToUtcMoment(dateProfile.renderUnzonedRange.endMs, true); var dayDates=[]; var dayRanges=[]; while (dayStart < viewEnd){ dayDates.push(dayStart.clone()); dayRanges.push(new UnzonedRange_1.default(dayStart, dayStart.clone().add(1, 'day'))); dayStart.add(1, 'day'); } this.dayDates=dayDates; this.dayRanges=dayRanges; }; ListView.prototype.componentFootprintToSegs=function (footprint){ var dayRanges=this.dayRanges; var dayIndex; var segRange; var seg; var segs=[]; for (dayIndex=0; dayIndex < dayRanges.length; dayIndex++){ segRange=footprint.unzonedRange.intersect(dayRanges[dayIndex]); if(segRange){ seg={ startMs: segRange.startMs, endMs: segRange.endMs, isStart: segRange.isStart, isEnd: segRange.isEnd, dayIndex: dayIndex }; segs.push(seg); if(!seg.isEnd&&!footprint.isAllDay && dayIndex + 1 < dayRanges.length && footprint.unzonedRange.endMs < dayRanges[dayIndex + 1].startMs + this.nextDayThreshold){ seg.endMs=footprint.unzonedRange.endMs; seg.isEnd=true; break; }} } return segs; }; ListView.prototype.renderEmptyMessage=function (){ this.contentEl.html('
' + '
' + '
' + util_1.htmlEscape(this.opt('noEventsMessage')) + '
' + '
' + '
'); }; ListView.prototype.renderSegList=function (allSegs){ var segsByDay=this.groupSegsByDay(allSegs); var dayIndex; var daySegs; var i; var tableEl=$('
'); var tbodyEl=tableEl.find('tbody'); for (dayIndex=0; dayIndex < segsByDay.length; dayIndex++){ daySegs=segsByDay[dayIndex]; if(daySegs){ tbodyEl.append(this.dayHeaderHtml(this.dayDates[dayIndex])); this.eventRenderer.sortEventSegs(daySegs); for (i=0; i < daySegs.length; i++){ tbodyEl.append(daySegs[i].el); }} } this.contentEl.empty().append(tableEl); }; ListView.prototype.groupSegsByDay=function (segs){ var segsByDay=[]; var i; var seg; for (i=0; i < segs.length; i++){ seg=segs[i]; (segsByDay[seg.dayIndex]||(segsByDay[seg.dayIndex]=[])) .push(seg); } return segsByDay; }; ListView.prototype.dayHeaderHtml=function (dayDate){ var mainFormat=this.opt('listDayFormat'); var altFormat=this.opt('listDayAltFormat'); return '' + '' + (mainFormat ? this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-main' }, util_1.htmlEscape(dayDate.format(mainFormat)) ) : '') + (altFormat ? this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-alt' }, util_1.htmlEscape(dayDate.format(altFormat)) ) : '') + '' + ''; }; return ListView; }(View_1.default)); exports.default=ListView; ListView.prototype.eventRendererClass=ListEventRenderer_1.default; ListView.prototype.eventPointingClass=ListEventPointing_1.default; }), , , , , , (function(module, exports, __webpack_require__){ var $=__webpack_require__(3); var exportHooks=__webpack_require__(16); var util_1=__webpack_require__(4); var Calendar_1=__webpack_require__(220); __webpack_require__(10); __webpack_require__(47); __webpack_require__(256); __webpack_require__(257); __webpack_require__(260); __webpack_require__(261); __webpack_require__(262); __webpack_require__(263); $.fullCalendar=exportHooks; $.fn.fullCalendar=function (options){ var args=Array.prototype.slice.call(arguments, 1); var res=this; this.each(function (i, _element){ var element=$(_element); var calendar=element.data('fullCalendar'); var singleRes; if(typeof options==='string'){ if(options==='getCalendar'){ if(!i){ res=calendar; }} else if(options==='destroy'){ if(calendar){ calendar.destroy(); element.removeData('fullCalendar'); }} else if(!calendar){ util_1.warn('Attempting to call a FullCalendar method on an element with no calendar.'); } else if($.isFunction(calendar[options])){ singleRes=calendar[options].apply(calendar, args); if(!i){ res=singleRes; } if(options==='destroy'){ element.removeData('fullCalendar'); }}else{ util_1.warn("'" + options + "' is an unknown FullCalendar method."); }} else if(!calendar){ calendar=new Calendar_1.default(element, options); element.data('fullCalendar', calendar); calendar.render(); }}); return res; }; module.exports=exportHooks; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var Model_1=__webpack_require__(48); var Component= (function (_super){ tslib_1.__extends(Component, _super); function Component(){ return _super!==null&&_super.apply(this, arguments)||this; } Component.prototype.setElement=function (el){ this.el=el; this.bindGlobalHandlers(); this.renderSkeleton(); this.set('isInDom', true); }; Component.prototype.removeElement=function (){ this.unset('isInDom'); this.unrenderSkeleton(); this.unbindGlobalHandlers(); this.el.remove(); }; Component.prototype.bindGlobalHandlers=function (){ }; Component.prototype.unbindGlobalHandlers=function (){ }; Component.prototype.renderSkeleton=function (){ }; Component.prototype.unrenderSkeleton=function (){ }; return Component; }(Model_1.default)); exports.default=Component; }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); var Iterator= (function (){ function Iterator(items){ this.items=items||[]; } Iterator.prototype.proxyCall=function (methodName){ var args=[]; for (var _i=1; _i < arguments.length; _i++){ args[_i - 1]=arguments[_i]; } var results=[]; this.items.forEach(function (item){ results.push(item[methodName].apply(item, args)); }); return results; }; return Iterator; }()); exports.default=Iterator; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var Toolbar= (function (){ function Toolbar(calendar, toolbarOptions){ this.el=null; this.viewsWithButtons=[]; this.calendar=calendar; this.toolbarOptions=toolbarOptions; } Toolbar.prototype.setToolbarOptions=function (newToolbarOptions){ this.toolbarOptions=newToolbarOptions; }; Toolbar.prototype.render=function (){ var sections=this.toolbarOptions.layout; var el=this.el; if(sections){ if(!el){ el=this.el=$("
"); }else{ el.empty(); } el.append(this.renderSection('left')) .append(this.renderSection('right')) .append(this.renderSection('center')) .append('
'); }else{ this.removeElement(); }}; Toolbar.prototype.removeElement=function (){ if(this.el){ this.el.remove(); this.el=null; }}; Toolbar.prototype.renderSection=function (position){ var _this=this; var calendar=this.calendar; var theme=calendar.theme; var optionsManager=calendar.optionsManager; var viewSpecManager=calendar.viewSpecManager; var sectionEl=$('
'); var buttonStr=this.toolbarOptions.layout[position]; var calendarCustomButtons=optionsManager.get('customButtons')||{}; var calendarButtonTextOverrides=optionsManager.overrides.buttonText||{}; var calendarButtonText=optionsManager.get('buttonText')||{}; if(buttonStr){ $.each(buttonStr.split(' '), function (i, buttonGroupStr){ var groupChildren=$(); var isOnlyButtons=true; var groupEl; $.each(buttonGroupStr.split(','), function (j, buttonName){ var customButtonProps; var viewSpec; var buttonClick; var buttonIcon; var buttonText; // " var buttonInnerHtml; var buttonClasses; var buttonEl; var buttonAriaAttr; if(buttonName==='title'){ groupChildren=groupChildren.add($('

 

')); isOnlyButtons=false; }else{ if((customButtonProps=calendarCustomButtons[buttonName])){ buttonClick=function (ev){ if(customButtonProps.click){ customButtonProps.click.call(buttonEl[0], ev); }}; (buttonIcon=theme.getCustomButtonIconClass(customButtonProps)) || (buttonIcon=theme.getIconClass(buttonName)) || (buttonText=customButtonProps.text); } else if((viewSpec=viewSpecManager.getViewSpec(buttonName))){ _this.viewsWithButtons.push(buttonName); buttonClick=function (){ calendar.changeView(buttonName); }; (buttonText=viewSpec.buttonTextOverride) || (buttonIcon=theme.getIconClass(buttonName)) || (buttonText=viewSpec.buttonTextDefault); } else if(calendar[buttonName]){ buttonClick=function (){ calendar[buttonName](); }; (buttonText=calendarButtonTextOverrides[buttonName]) || (buttonIcon=theme.getIconClass(buttonName)) || (buttonText=calendarButtonText[buttonName]); } if(buttonClick){ buttonClasses=[ 'fc-' + buttonName + '-button', theme.getClass('button'), theme.getClass('stateDefault') ]; if(buttonText){ buttonInnerHtml=util_1.htmlEscape(buttonText); buttonAriaAttr=''; } else if(buttonIcon){ buttonInnerHtml=""; buttonAriaAttr=' aria-label="' + buttonName + '"'; } buttonEl=$( '') .click(function (ev){ if(!buttonEl.hasClass(theme.getClass('stateDisabled'))){ buttonClick(ev); if(buttonEl.hasClass(theme.getClass('stateActive')) || buttonEl.hasClass(theme.getClass('stateDisabled'))){ buttonEl.removeClass(theme.getClass('stateHover')); }} }) .mousedown(function (){ buttonEl .not('.' + theme.getClass('stateActive')) .not('.' + theme.getClass('stateDisabled')) .addClass(theme.getClass('stateDown')); }) .mouseup(function (){ buttonEl.removeClass(theme.getClass('stateDown')); }) .hover(function (){ buttonEl .not('.' + theme.getClass('stateActive')) .not('.' + theme.getClass('stateDisabled')) .addClass(theme.getClass('stateHover')); }, function (){ buttonEl .removeClass(theme.getClass('stateHover')) .removeClass(theme.getClass('stateDown')); }); groupChildren=groupChildren.add(buttonEl); }} }); if(isOnlyButtons){ groupChildren .first().addClass(theme.getClass('cornerLeft')).end() .last().addClass(theme.getClass('cornerRight')).end(); } if(groupChildren.length > 1){ groupEl=$('
'); if(isOnlyButtons){ groupEl.addClass(theme.getClass('buttonGroup')); } groupEl.append(groupChildren); sectionEl.append(groupEl); }else{ sectionEl.append(groupChildren); }}); } return sectionEl; }; Toolbar.prototype.updateTitle=function (text){ if(this.el){ this.el.find('h2').text(text); }}; Toolbar.prototype.activateButton=function (buttonName){ if(this.el){ this.el.find('.fc-' + buttonName + '-button') .addClass(this.calendar.theme.getClass('stateActive')); }}; Toolbar.prototype.deactivateButton=function (buttonName){ if(this.el){ this.el.find('.fc-' + buttonName + '-button') .removeClass(this.calendar.theme.getClass('stateActive')); }}; Toolbar.prototype.disableButton=function (buttonName){ if(this.el){ this.el.find('.fc-' + buttonName + '-button') .prop('disabled', true) .addClass(this.calendar.theme.getClass('stateDisabled')); }}; Toolbar.prototype.enableButton=function (buttonName){ if(this.el){ this.el.find('.fc-' + buttonName + '-button') .prop('disabled', false) .removeClass(this.calendar.theme.getClass('stateDisabled')); }}; Toolbar.prototype.getViewsWithButtons=function (){ return this.viewsWithButtons; }; return Toolbar; }()); exports.default=Toolbar; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var options_1=__webpack_require__(32); var locale_1=__webpack_require__(31); var Model_1=__webpack_require__(48); var OptionsManager= (function (_super){ tslib_1.__extends(OptionsManager, _super); function OptionsManager(_calendar, overrides){ var _this=_super.call(this)||this; _this._calendar=_calendar; _this.overrides=$.extend({}, overrides); _this.dynamicOverrides={}; _this.compute(); return _this; } OptionsManager.prototype.add=function (newOptionHash){ var optionCnt=0; var optionName; this.recordOverrides(newOptionHash); for (optionName in newOptionHash){ optionCnt++; } if(optionCnt===1){ if(optionName==='height'||optionName==='contentHeight'||optionName==='aspectRatio'){ this._calendar.updateViewSize(true); return; } else if(optionName==='defaultDate'){ return; } else if(optionName==='businessHours'){ return; } else if(/^(event|select)(Overlap|Constraint|Allow)$/.test(optionName)){ return; } else if(optionName==='timezone'){ this._calendar.view.flash('initialEvents'); return; }} this._calendar.renderHeader(); this._calendar.renderFooter(); this._calendar.viewsByType={}; this._calendar.reinitView(); }; OptionsManager.prototype.compute=function (){ var locale; var localeDefaults; var isRTL; var dirDefaults; var rawOptions; locale=util_1.firstDefined(this.dynamicOverrides.locale, this.overrides.locale); localeDefaults=locale_1.localeOptionHash[locale]; if(!localeDefaults){ locale=options_1.globalDefaults.locale; localeDefaults=locale_1.localeOptionHash[locale]||{};} isRTL=util_1.firstDefined(this.dynamicOverrides.isRTL, this.overrides.isRTL, localeDefaults.isRTL, options_1.globalDefaults.isRTL); dirDefaults=isRTL ? options_1.rtlDefaults:{}; this.dirDefaults=dirDefaults; this.localeDefaults=localeDefaults; rawOptions=options_1.mergeOptions([ options_1.globalDefaults, dirDefaults, localeDefaults, this.overrides, this.dynamicOverrides ]); locale_1.populateInstanceComputableOptions(rawOptions); this.reset(rawOptions); }; OptionsManager.prototype.recordOverrides=function (newOptionHash){ var optionName; for (optionName in newOptionHash){ this.dynamicOverrides[optionName]=newOptionHash[optionName]; } this._calendar.viewSpecManager.clearCache(); this.compute(); }; return OptionsManager; }(Model_1.default)); exports.default=OptionsManager; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var moment=__webpack_require__(0); var $=__webpack_require__(3); var ViewRegistry_1=__webpack_require__(22); var util_1=__webpack_require__(4); var options_1=__webpack_require__(32); var locale_1=__webpack_require__(31); var ViewSpecManager= (function (){ function ViewSpecManager(optionsManager, _calendar){ this.optionsManager=optionsManager; this._calendar=_calendar; this.clearCache(); } ViewSpecManager.prototype.clearCache=function (){ this.viewSpecCache={};}; ViewSpecManager.prototype.getViewSpec=function (viewType){ var cache=this.viewSpecCache; return cache[viewType]||(cache[viewType]=this.buildViewSpec(viewType)); }; ViewSpecManager.prototype.getUnitViewSpec=function (unit){ var viewTypes; var i; var spec; if($.inArray(unit, util_1.unitsDesc)!==-1){ viewTypes=this._calendar.header.getViewsWithButtons(); $.each(ViewRegistry_1.viewHash, function (viewType){ viewTypes.push(viewType); }); for (i=0; i < viewTypes.length; i++){ spec=this.getViewSpec(viewTypes[i]); if(spec){ if(spec.singleUnit===unit){ return spec; }} }} }; ViewSpecManager.prototype.buildViewSpec=function (requestedViewType){ var viewOverrides=this.optionsManager.overrides.views||{}; var specChain=[]; var defaultsChain=[]; var overridesChain=[]; var viewType=requestedViewType; var spec; var overrides; var durationInput; var duration; var unit; while (viewType){ spec=ViewRegistry_1.viewHash[viewType]; overrides=viewOverrides[viewType]; viewType=null; if(typeof spec==='function'){ spec={ 'class': spec };} if(spec){ specChain.unshift(spec); defaultsChain.unshift(spec.defaults||{}); durationInput=durationInput||spec.duration; viewType=viewType||spec.type; } if(overrides){ overridesChain.unshift(overrides); durationInput=durationInput||overrides.duration; viewType=viewType||overrides.type; }} spec=util_1.mergeProps(specChain); spec.type=requestedViewType; if(!spec['class']){ return false; } durationInput=durationInput || this.optionsManager.dynamicOverrides.duration || this.optionsManager.overrides.duration; if(durationInput){ duration=moment.duration(durationInput); if(duration.valueOf()){ unit=util_1.computeDurationGreatestUnit(duration, durationInput); spec.duration=duration; spec.durationUnit=unit; if(duration.as(unit)===1){ spec.singleUnit=unit; overridesChain.unshift(viewOverrides[unit]||{}); }} } spec.defaults=options_1.mergeOptions(defaultsChain); spec.overrides=options_1.mergeOptions(overridesChain); this.buildViewSpecOptions(spec); this.buildViewSpecButtonText(spec, requestedViewType); return spec; }; ViewSpecManager.prototype.buildViewSpecOptions=function (spec){ var optionsManager=this.optionsManager; spec.options=options_1.mergeOptions([ options_1.globalDefaults, spec.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, spec.overrides, optionsManager.dynamicOverrides ]); locale_1.populateInstanceComputableOptions(spec.options); }; ViewSpecManager.prototype.buildViewSpecButtonText=function (spec, requestedViewType){ var optionsManager=this.optionsManager; function queryButtonText(options){ var buttonText=options.buttonText||{}; return buttonText[requestedViewType] || (spec.buttonTextKey ? buttonText[spec.buttonTextKey]:null) || (spec.singleUnit ? buttonText[spec.singleUnit]:null); } spec.buttonTextOverride = queryButtonText(optionsManager.dynamicOverrides) || queryButtonText(optionsManager.overrides) || spec.overrides.buttonText; spec.buttonTextDefault = queryButtonText(optionsManager.localeDefaults) || queryButtonText(optionsManager.dirDefaults) || spec.defaults.buttonText || queryButtonText(options_1.globalDefaults) || (spec.duration ? this._calendar.humanizeDuration(spec.duration):null) || requestedViewType; }; return ViewSpecManager; }()); exports.default=ViewSpecManager; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var EventPeriod_1=__webpack_require__(243); var ArrayEventSource_1=__webpack_require__(52); var EventSource_1=__webpack_require__(6); var EventSourceParser_1=__webpack_require__(38); var SingleEventDef_1=__webpack_require__(13); var EventInstanceGroup_1=__webpack_require__(18); var EmitterMixin_1=__webpack_require__(11); var ListenerMixin_1=__webpack_require__(7); var EventManager= (function (){ function EventManager(calendar){ this.calendar=calendar; this.stickySource=new ArrayEventSource_1.default(calendar); this.otherSources=[]; } EventManager.prototype.requestEvents=function (start, end, timezone, force){ if(force || !this.currentPeriod || !this.currentPeriod.isWithinRange(start, end) || timezone!==this.currentPeriod.timezone){ this.setPeriod(new EventPeriod_1.default(start, end, timezone)); } return this.currentPeriod.whenReleased(); }; EventManager.prototype.addSource=function (eventSource){ this.otherSources.push(eventSource); if(this.currentPeriod){ this.currentPeriod.requestSource(eventSource); }}; EventManager.prototype.removeSource=function (doomedSource){ util_1.removeExact(this.otherSources, doomedSource); if(this.currentPeriod){ this.currentPeriod.purgeSource(doomedSource); }}; EventManager.prototype.removeAllSources=function (){ this.otherSources=[]; if(this.currentPeriod){ this.currentPeriod.purgeAllSources(); }}; EventManager.prototype.refetchSource=function (eventSource){ var currentPeriod=this.currentPeriod; if(currentPeriod){ currentPeriod.freeze(); currentPeriod.purgeSource(eventSource); currentPeriod.requestSource(eventSource); currentPeriod.thaw(); }}; EventManager.prototype.refetchAllSources=function (){ var currentPeriod=this.currentPeriod; if(currentPeriod){ currentPeriod.freeze(); currentPeriod.purgeAllSources(); currentPeriod.requestSources(this.getSources()); currentPeriod.thaw(); }}; EventManager.prototype.getSources=function (){ return [this.stickySource].concat(this.otherSources); }; EventManager.prototype.multiQuerySources=function (matchInputs){ if(!matchInputs){ matchInputs=[]; } else if(!$.isArray(matchInputs)){ matchInputs=[matchInputs]; } var matchingSources=[]; var i; for (i=0; i < matchInputs.length; i++){ matchingSources.push.apply(matchingSources, this.querySources(matchInputs[i])); } return matchingSources; }; EventManager.prototype.querySources=function (matchInput){ var sources=this.otherSources; var i; var source; for (i=0; i < sources.length; i++){ source=sources[i]; if(source===matchInput){ return [source]; }} source=this.getSourceById(EventSource_1.default.normalizeId(matchInput)); if(source){ return [source]; } matchInput=EventSourceParser_1.default.parse(matchInput, this.calendar); if(matchInput){ return $.grep(sources, function (source){ return isSourcesEquivalent(matchInput, source); }); }}; EventManager.prototype.getSourceById=function (id){ return $.grep(this.otherSources, function (source){ return source.id&&source.id===id; })[0]; }; EventManager.prototype.setPeriod=function (eventPeriod){ if(this.currentPeriod){ this.unbindPeriod(this.currentPeriod); this.currentPeriod=null; } this.currentPeriod=eventPeriod; this.bindPeriod(eventPeriod); eventPeriod.requestSources(this.getSources()); }; EventManager.prototype.bindPeriod=function (eventPeriod){ this.listenTo(eventPeriod, 'release', function (eventsPayload){ this.trigger('release', eventsPayload); }); }; EventManager.prototype.unbindPeriod=function (eventPeriod){ this.stopListeningTo(eventPeriod); }; EventManager.prototype.getEventDefByUid=function (uid){ if(this.currentPeriod){ return this.currentPeriod.getEventDefByUid(uid); }}; EventManager.prototype.addEventDef=function (eventDef, isSticky){ if(isSticky){ this.stickySource.addEventDef(eventDef); } if(this.currentPeriod){ this.currentPeriod.addEventDef(eventDef); }}; EventManager.prototype.removeEventDefsById=function (eventId){ this.getSources().forEach(function (eventSource){ eventSource.removeEventDefsById(eventId); }); if(this.currentPeriod){ this.currentPeriod.removeEventDefsById(eventId); }}; EventManager.prototype.removeAllEventDefs=function (){ this.getSources().forEach(function (eventSource){ eventSource.removeAllEventDefs(); }); if(this.currentPeriod){ this.currentPeriod.removeAllEventDefs(); }}; EventManager.prototype.mutateEventsWithId=function (eventDefId, eventDefMutation){ var currentPeriod=this.currentPeriod; var eventDefs; var undoFuncs=[]; if(currentPeriod){ currentPeriod.freeze(); eventDefs=currentPeriod.getEventDefsById(eventDefId); eventDefs.forEach(function (eventDef){ currentPeriod.removeEventDef(eventDef); undoFuncs.push(eventDefMutation.mutateSingle(eventDef)); currentPeriod.addEventDef(eventDef); }); currentPeriod.thaw(); return function (){ currentPeriod.freeze(); for (var i=0; i < eventDefs.length; i++){ currentPeriod.removeEventDef(eventDefs[i]); undoFuncs[i](); currentPeriod.addEventDef(eventDefs[i]); } currentPeriod.thaw(); };} return function (){ };}; EventManager.prototype.buildMutatedEventInstanceGroup=function (eventDefId, eventDefMutation){ var eventDefs=this.getEventDefsById(eventDefId); var i; var defCopy; var allInstances=[]; for (i=0; i < eventDefs.length; i++){ defCopy=eventDefs[i].clone(); if(defCopy instanceof SingleEventDef_1.default){ eventDefMutation.mutateSingle(defCopy); allInstances.push.apply(allInstances, defCopy.buildInstances()); }} return new EventInstanceGroup_1.default(allInstances); }; EventManager.prototype.freeze=function (){ if(this.currentPeriod){ this.currentPeriod.freeze(); }}; EventManager.prototype.thaw=function (){ if(this.currentPeriod){ this.currentPeriod.thaw(); }}; EventManager.prototype.getEventDefsById=function (eventDefId){ return this.currentPeriod.getEventDefsById(eventDefId); }; EventManager.prototype.getEventInstances=function (){ return this.currentPeriod.getEventInstances(); }; EventManager.prototype.getEventInstancesWithId=function (eventDefId){ return this.currentPeriod.getEventInstancesWithId(eventDefId); }; EventManager.prototype.getEventInstancesWithoutId=function (eventDefId){ return this.currentPeriod.getEventInstancesWithoutId(eventDefId); }; return EventManager; }()); exports.default=EventManager; EmitterMixin_1.default.mixInto(EventManager); ListenerMixin_1.default.mixInto(EventManager); function isSourcesEquivalent(source0, source1){ return source0.getPrimitive()===source1.getPrimitive(); } }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var Promise_1=__webpack_require__(20); var EmitterMixin_1=__webpack_require__(11); var UnzonedRange_1=__webpack_require__(5); var EventInstanceGroup_1=__webpack_require__(18); var EventPeriod= (function (){ function EventPeriod(start, end, timezone){ this.pendingCnt=0; this.freezeDepth=0; this.stuntedReleaseCnt=0; this.releaseCnt=0; this.start=start; this.end=end; this.timezone=timezone; this.unzonedRange=new UnzonedRange_1.default(start.clone().stripZone(), end.clone().stripZone()); this.requestsByUid={}; this.eventDefsByUid={}; this.eventDefsById={}; this.eventInstanceGroupsById={};} EventPeriod.prototype.isWithinRange=function (start, end){ return !start.isBefore(this.start)&&!end.isAfter(this.end); }; EventPeriod.prototype.requestSources=function (sources){ this.freeze(); for (var i=0; i < sources.length; i++){ this.requestSource(sources[i]); } this.thaw(); }; EventPeriod.prototype.requestSource=function (source){ var _this=this; var request={ source: source, status: 'pending', eventDefs: null }; this.requestsByUid[source.uid]=request; this.pendingCnt +=1; source.fetch(this.start, this.end, this.timezone).then(function (eventDefs){ if(request.status!=='cancelled'){ request.status='completed'; request.eventDefs=eventDefs; _this.addEventDefs(eventDefs); _this.pendingCnt--; _this.tryRelease(); }}, function (){ if(request.status!=='cancelled'){ request.status='failed'; _this.pendingCnt--; _this.tryRelease(); }}); }; EventPeriod.prototype.purgeSource=function (source){ var request=this.requestsByUid[source.uid]; if(request){ delete this.requestsByUid[source.uid]; if(request.status==='pending'){ request.status='cancelled'; this.pendingCnt--; this.tryRelease(); } else if(request.status==='completed'){ request.eventDefs.forEach(this.removeEventDef.bind(this)); }} }; EventPeriod.prototype.purgeAllSources=function (){ var requestsByUid=this.requestsByUid; var uid; var request; var completedCnt=0; for (uid in requestsByUid){ request=requestsByUid[uid]; if(request.status==='pending'){ request.status='cancelled'; } else if(request.status==='completed'){ completedCnt++; }} this.requestsByUid={}; this.pendingCnt=0; if(completedCnt){ this.removeAllEventDefs(); }}; EventPeriod.prototype.getEventDefByUid=function (eventDefUid){ return this.eventDefsByUid[eventDefUid]; }; EventPeriod.prototype.getEventDefsById=function (eventDefId){ var a=this.eventDefsById[eventDefId]; if(a){ return a.slice(); } return []; }; EventPeriod.prototype.addEventDefs=function (eventDefs){ for (var i=0; i < eventDefs.length; i++){ this.addEventDef(eventDefs[i]); }}; EventPeriod.prototype.addEventDef=function (eventDef){ var eventDefsById=this.eventDefsById; var eventDefId=eventDef.id; var eventDefs=eventDefsById[eventDefId]||(eventDefsById[eventDefId]=[]); var eventInstances=eventDef.buildInstances(this.unzonedRange); var i; eventDefs.push(eventDef); this.eventDefsByUid[eventDef.uid]=eventDef; for (i=0; i < eventInstances.length; i++){ this.addEventInstance(eventInstances[i], eventDefId); }}; EventPeriod.prototype.removeEventDefsById=function (eventDefId){ var _this=this; this.getEventDefsById(eventDefId).forEach(function (eventDef){ _this.removeEventDef(eventDef); }); }; EventPeriod.prototype.removeAllEventDefs=function (){ var isEmpty=$.isEmptyObject(this.eventDefsByUid); this.eventDefsByUid={}; this.eventDefsById={}; this.eventInstanceGroupsById={}; if(!isEmpty){ this.tryRelease(); }}; EventPeriod.prototype.removeEventDef=function (eventDef){ var eventDefsById=this.eventDefsById; var eventDefs=eventDefsById[eventDef.id]; delete this.eventDefsByUid[eventDef.uid]; if(eventDefs){ util_1.removeExact(eventDefs, eventDef); if(!eventDefs.length){ delete eventDefsById[eventDef.id]; } this.removeEventInstancesForDef(eventDef); }}; EventPeriod.prototype.getEventInstances=function (){ var eventInstanceGroupsById=this.eventInstanceGroupsById; var eventInstances=[]; var id; for (id in eventInstanceGroupsById){ eventInstances.push.apply(eventInstances, eventInstanceGroupsById[id].eventInstances); } return eventInstances; }; EventPeriod.prototype.getEventInstancesWithId=function (eventDefId){ var eventInstanceGroup=this.eventInstanceGroupsById[eventDefId]; if(eventInstanceGroup){ return eventInstanceGroup.eventInstances.slice(); } return []; }; EventPeriod.prototype.getEventInstancesWithoutId=function (eventDefId){ var eventInstanceGroupsById=this.eventInstanceGroupsById; var matchingInstances=[]; var id; for (id in eventInstanceGroupsById){ if(id!==eventDefId){ matchingInstances.push.apply(matchingInstances, eventInstanceGroupsById[id].eventInstances); }} return matchingInstances; }; EventPeriod.prototype.addEventInstance=function (eventInstance, eventDefId){ var eventInstanceGroupsById=this.eventInstanceGroupsById; var eventInstanceGroup=eventInstanceGroupsById[eventDefId] || (eventInstanceGroupsById[eventDefId]=new EventInstanceGroup_1.default()); eventInstanceGroup.eventInstances.push(eventInstance); this.tryRelease(); }; EventPeriod.prototype.removeEventInstancesForDef=function (eventDef){ var eventInstanceGroupsById=this.eventInstanceGroupsById; var eventInstanceGroup=eventInstanceGroupsById[eventDef.id]; var removeCnt; if(eventInstanceGroup){ removeCnt=util_1.removeMatching(eventInstanceGroup.eventInstances, function (currentEventInstance){ return currentEventInstance.def===eventDef; }); if(!eventInstanceGroup.eventInstances.length){ delete eventInstanceGroupsById[eventDef.id]; } if(removeCnt){ this.tryRelease(); }} }; EventPeriod.prototype.tryRelease=function (){ if(!this.pendingCnt){ if(!this.freezeDepth){ this.release(); }else{ this.stuntedReleaseCnt++; }} }; EventPeriod.prototype.release=function (){ this.releaseCnt++; this.trigger('release', this.eventInstanceGroupsById); }; EventPeriod.prototype.whenReleased=function (){ var _this=this; if(this.releaseCnt){ return Promise_1.default.resolve(this.eventInstanceGroupsById); }else{ return Promise_1.default.construct(function (onResolve){ _this.one('release', onResolve); }); }}; EventPeriod.prototype.freeze=function (){ if(!(this.freezeDepth++)){ this.stuntedReleaseCnt=0; }}; EventPeriod.prototype.thaw=function (){ if(!(--this.freezeDepth)&&this.stuntedReleaseCnt&&!this.pendingCnt){ this.release(); }}; return EventPeriod; }()); exports.default=EventPeriod; EmitterMixin_1.default.mixInto(EventPeriod); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var ListenerMixin_1=__webpack_require__(7); var MouseFollower= (function (){ function MouseFollower(sourceEl, options){ this.isFollowing=false; this.isHidden=false; this.isAnimating=false; this.options=options=options||{}; this.sourceEl=sourceEl; this.parentEl=options.parentEl ? $(options.parentEl):sourceEl.parent(); } MouseFollower.prototype.start=function (ev){ if(!this.isFollowing){ this.isFollowing=true; this.y0=util_1.getEvY(ev); this.x0=util_1.getEvX(ev); this.topDelta=0; this.leftDelta=0; if(!this.isHidden){ this.updatePosition(); } if(util_1.getEvIsTouch(ev)){ this.listenTo($(document), 'touchmove', this.handleMove); }else{ this.listenTo($(document), 'mousemove', this.handleMove); }} }; MouseFollower.prototype.stop=function (shouldRevert, callback){ var _this=this; var revertDuration=this.options.revertDuration; var complete=function (){ _this.isAnimating=false; _this.removeElement(); _this.top0=_this.left0=null; if(callback){ callback(); }}; if(this.isFollowing&&!this.isAnimating){ this.isFollowing=false; this.stopListeningTo($(document)); if(shouldRevert&&revertDuration&&!this.isHidden){ this.isAnimating=true; this.el.animate({ top: this.top0, left: this.left0 }, { duration: revertDuration, complete: complete }); }else{ complete(); }} }; MouseFollower.prototype.getEl=function (){ var el=this.el; if(!el){ el=this.el=this.sourceEl.clone() .addClass(this.options.additionalClass||'') .css({ position: 'absolute', visibility: '', display: this.isHidden ? 'none':'', margin: 0, right: 'auto', bottom: 'auto', width: this.sourceEl.width(), height: this.sourceEl.height(), opacity: this.options.opacity||'', zIndex: this.options.zIndex }); el.addClass('fc-unselectable'); el.appendTo(this.parentEl); } return el; }; MouseFollower.prototype.removeElement=function (){ if(this.el){ this.el.remove(); this.el=null; }}; MouseFollower.prototype.updatePosition=function (){ var sourceOffset; var origin; this.getEl(); if(this.top0==null){ sourceOffset=this.sourceEl.offset(); origin=this.el.offsetParent().offset(); this.top0=sourceOffset.top - origin.top; this.left0=sourceOffset.left - origin.left; } this.el.css({ top: this.top0 + this.topDelta, left: this.left0 + this.leftDelta }); }; MouseFollower.prototype.handleMove=function (ev){ this.topDelta=util_1.getEvY(ev) - this.y0; this.leftDelta=util_1.getEvX(ev) - this.x0; if(!this.isHidden){ this.updatePosition(); }}; MouseFollower.prototype.hide=function (){ if(!this.isHidden){ this.isHidden=true; if(this.el){ this.el.hide(); }} }; MouseFollower.prototype.show=function (){ if(this.isHidden){ this.isHidden=false; this.updatePosition(); this.getEl().show(); }}; return MouseFollower; }()); exports.default=MouseFollower; ListenerMixin_1.default.mixInto(MouseFollower); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var HitDragListener_1=__webpack_require__(23); var Interaction_1=__webpack_require__(15); var DateClicking= (function (_super){ tslib_1.__extends(DateClicking, _super); function DateClicking(component){ var _this=_super.call(this, component)||this; _this.dragListener=_this.buildDragListener(); return _this; } DateClicking.prototype.end=function (){ this.dragListener.endInteraction(); }; DateClicking.prototype.bindToEl=function (el){ var component=this.component; var dragListener=this.dragListener; component.bindDateHandlerToEl(el, 'mousedown', function (ev){ if(!component.shouldIgnoreMouse()){ dragListener.startInteraction(ev); }}); component.bindDateHandlerToEl(el, 'touchstart', function (ev){ if(!component.shouldIgnoreTouch()){ dragListener.startInteraction(ev); }}); }; DateClicking.prototype.buildDragListener=function (){ var _this=this; var component=this.component; var dayClickHit; var dragListener=new HitDragListener_1.default(component, { scroll: this.opt('dragScroll'), interactionStart: function (){ dayClickHit=dragListener.origHit; }, hitOver: function (hit, isOrig, origHit){ if(!isOrig){ dayClickHit=null; }}, hitOut: function (){ dayClickHit=null; }, interactionEnd: function (ev, isCancelled){ var componentFootprint; if(!isCancelled&&dayClickHit){ componentFootprint=component.getSafeHitFootprint(dayClickHit); if(componentFootprint){ _this.view.triggerDayClick(componentFootprint, component.getHitEl(dayClickHit), ev); }} }}); dragListener.shouldCancelTouchScroll=false; dragListener.scrollAlwaysKills=true; return dragListener; }; return DateClicking; }(Interaction_1.default)); exports.default=DateClicking; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var util_1=__webpack_require__(4); var EventRenderer_1=__webpack_require__(42); var TimeGridEventRenderer= (function (_super){ tslib_1.__extends(TimeGridEventRenderer, _super); function TimeGridEventRenderer(timeGrid, fillRenderer){ var _this=_super.call(this, timeGrid, fillRenderer)||this; _this.timeGrid=timeGrid; return _this; } TimeGridEventRenderer.prototype.renderFgSegs=function (segs){ this.renderFgSegsIntoContainers(segs, this.timeGrid.fgContainerEls); }; TimeGridEventRenderer.prototype.renderFgSegsIntoContainers=function (segs, containerEls){ var segsByCol; var col; segsByCol=this.timeGrid.groupSegsByCol(segs); for (col=0; col < this.timeGrid.colCnt; col++){ this.updateFgSegCoords(segsByCol[col]); } this.timeGrid.attachSegsByCol(segsByCol, containerEls); }; TimeGridEventRenderer.prototype.unrenderFgSegs=function (){ if(this.fgSegs){ this.fgSegs.forEach(function (seg){ seg.el.remove(); }); }}; TimeGridEventRenderer.prototype.computeEventTimeFormat=function (){ return this.opt('noMeridiemTimeFormat'); }; TimeGridEventRenderer.prototype.computeDisplayEventEnd=function (){ return true; }; TimeGridEventRenderer.prototype.fgSegHtml=function (seg, disableResizing){ var view=this.view; var calendar=view.calendar; var componentFootprint=seg.footprint.componentFootprint; var isAllDay=componentFootprint.isAllDay; var eventDef=seg.footprint.eventDef; var isDraggable=view.isEventDefDraggable(eventDef); var isResizableFromStart = !disableResizing&&seg.isStart&&view.isEventDefResizableFromStart(eventDef); var isResizableFromEnd = !disableResizing&&seg.isEnd&&view.isEventDefResizableFromEnd(eventDef); var classes=this.getSegClasses(seg, isDraggable, isResizableFromStart||isResizableFromEnd); var skinCss=util_1.cssToStr(this.getSkinCss(eventDef)); var timeText; var fullTimeText; var startTimeText; classes.unshift('fc-time-grid-event', 'fc-v-event'); if(view.isMultiDayRange(componentFootprint.unzonedRange)){ if(seg.isStart||seg.isEnd){ var zonedStart=calendar.msToMoment(seg.startMs); var zonedEnd=calendar.msToMoment(seg.endMs); timeText=this._getTimeText(zonedStart, zonedEnd, isAllDay); fullTimeText=this._getTimeText(zonedStart, zonedEnd, isAllDay, 'LT'); startTimeText=this._getTimeText(zonedStart, zonedEnd, isAllDay, null, false); }}else{ timeText=this.getTimeText(seg.footprint); fullTimeText=this.getTimeText(seg.footprint, 'LT'); startTimeText=this.getTimeText(seg.footprint, null, false); } return '' + '
' + (timeText ? '
' + '' + util_1.htmlEscape(timeText) + '' + '
' : '') + (eventDef.title ? '
' + util_1.htmlEscape(eventDef.title) + '
' : '') + '
' + '
' + (isResizableFromEnd ? '
' : '') + ''; }; TimeGridEventRenderer.prototype.updateFgSegCoords=function (segs){ this.timeGrid.computeSegVerticals(segs); this.computeFgSegHorizontals(segs); this.timeGrid.assignSegVerticals(segs); this.assignFgSegHorizontals(segs); }; TimeGridEventRenderer.prototype.computeFgSegHorizontals=function (segs){ var levels; var level0; var i; this.sortEventSegs(segs); levels=buildSlotSegLevels(segs); computeForwardSlotSegs(levels); if((level0=levels[0])){ for (i=0; i < level0.length; i++){ computeSlotSegPressures(level0[i]); } for (i=0; i < level0.length; i++){ this.computeFgSegForwardBack(level0[i], 0, 0); }} }; TimeGridEventRenderer.prototype.computeFgSegForwardBack=function (seg, seriesBackwardPressure, seriesBackwardCoord){ var forwardSegs=seg.forwardSegs; var i; if(seg.forwardCoord===undefined){ if(!forwardSegs.length){ seg.forwardCoord=1; }else{ this.sortForwardSegs(forwardSegs); this.computeFgSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord); seg.forwardCoord=forwardSegs[0].backwardCoord; } seg.backwardCoord=seg.forwardCoord - (seg.forwardCoord - seriesBackwardCoord) / (seriesBackwardPressure + 1); for (i=0; i < forwardSegs.length; i++){ this.computeFgSegForwardBack(forwardSegs[i], 0, seg.forwardCoord); }} }; TimeGridEventRenderer.prototype.sortForwardSegs=function (forwardSegs){ forwardSegs.sort(util_1.proxy(this, 'compareForwardSegs')); }; TimeGridEventRenderer.prototype.compareForwardSegs=function (seg1, seg2){ return seg2.forwardPressure - seg1.forwardPressure || (seg1.backwardCoord||0) - (seg2.backwardCoord||0) || this.compareEventSegs(seg1, seg2); }; TimeGridEventRenderer.prototype.assignFgSegHorizontals=function (segs){ var i; var seg; for (i=0; i < segs.length; i++){ seg=segs[i]; seg.el.css(this.generateFgSegHorizontalCss(seg)); if(seg.bottom - seg.top < 30){ seg.el.addClass('fc-short'); }} }; TimeGridEventRenderer.prototype.generateFgSegHorizontalCss=function (seg){ var shouldOverlap=this.opt('slotEventOverlap'); var backwardCoord=seg.backwardCoord; var forwardCoord=seg.forwardCoord; var props=this.timeGrid.generateSegVerticalCss(seg); var isRTL=this.timeGrid.isRTL; var left; var right; if(shouldOverlap){ forwardCoord=Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2); } if(isRTL){ left=1 - forwardCoord; right=backwardCoord; }else{ left=backwardCoord; right=1 - forwardCoord; } props.zIndex=seg.level + 1; props.left=left * 100 + '%'; props.right=right * 100 + '%'; if(shouldOverlap&&seg.forwardPressure){ props[isRTL ? 'marginLeft':'marginRight']=10 * 2; } return props; }; return TimeGridEventRenderer; }(EventRenderer_1.default)); exports.default=TimeGridEventRenderer; function buildSlotSegLevels(segs){ var levels=[]; var i; var seg; var j; for (i=0; i < segs.length; i++){ seg=segs[i]; for (j=0; j < levels.length; j++){ if(!computeSlotSegCollisions(seg, levels[j]).length){ break; }} seg.level=j; (levels[j]||(levels[j]=[])).push(seg); } return levels; } function computeForwardSlotSegs(levels){ var i; var level; var j; var seg; var k; for (i=0; i < levels.length; i++){ level=levels[i]; for (j=0; j < level.length; j++){ seg=level[j]; seg.forwardSegs=[]; for (k=i + 1; k < levels.length; k++){ computeSlotSegCollisions(seg, levels[k], seg.forwardSegs); }} }} function computeSlotSegPressures(seg){ var forwardSegs=seg.forwardSegs; var forwardPressure=0; var i; var forwardSeg; if(seg.forwardPressure===undefined){ for (i=0; i < forwardSegs.length; i++){ forwardSeg=forwardSegs[i]; computeSlotSegPressures(forwardSeg); forwardPressure=Math.max(forwardPressure, 1 + forwardSeg.forwardPressure); } seg.forwardPressure=forwardPressure; }} function computeSlotSegCollisions(seg, otherSegs, results){ if(results===void 0){ results=[]; } for (var i=0; i < otherSegs.length; i++){ if(isSlotSegCollision(seg, otherSegs[i])){ results.push(otherSegs[i]); }} return results; } function isSlotSegCollision(seg1, seg2){ return seg1.bottom > seg2.top&&seg1.top < seg2.bottom; } }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var HelperRenderer_1=__webpack_require__(58); var TimeGridHelperRenderer= (function (_super){ tslib_1.__extends(TimeGridHelperRenderer, _super); function TimeGridHelperRenderer(){ return _super!==null&&_super.apply(this, arguments)||this; } TimeGridHelperRenderer.prototype.renderSegs=function (segs, sourceSeg){ var helperNodes=[]; var i; var seg; var sourceEl; this.eventRenderer.renderFgSegsIntoContainers(segs, this.component.helperContainerEls); for (i=0; i < segs.length; i++){ seg=segs[i]; if(sourceSeg&&sourceSeg.col===seg.col){ sourceEl=sourceSeg.el; seg.el.css({ left: sourceEl.css('left'), right: sourceEl.css('right'), 'margin-left': sourceEl.css('margin-left'), 'margin-right': sourceEl.css('margin-right') }); } helperNodes.push(seg.el[0]); } return $(helperNodes); }; return TimeGridHelperRenderer; }(HelperRenderer_1.default)); exports.default=TimeGridHelperRenderer; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var FillRenderer_1=__webpack_require__(57); var TimeGridFillRenderer= (function (_super){ tslib_1.__extends(TimeGridFillRenderer, _super); function TimeGridFillRenderer(){ return _super!==null&&_super.apply(this, arguments)||this; } TimeGridFillRenderer.prototype.attachSegEls=function (type, segs){ var timeGrid=this.component; var containerEls; if(type==='bgEvent'){ containerEls=timeGrid.bgContainerEls; } else if(type==='businessHours'){ containerEls=timeGrid.businessContainerEls; } else if(type==='highlight'){ containerEls=timeGrid.highlightContainerEls; } timeGrid.updateSegVerticals(segs); timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls); return segs.map(function (seg){ return seg.el[0]; }); }; return TimeGridFillRenderer; }(FillRenderer_1.default)); exports.default=TimeGridFillRenderer; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var ListenerMixin_1=__webpack_require__(7); var Popover= (function (){ function Popover(options){ this.isHidden=true; this.margin=10; this.options=options||{};} Popover.prototype.show=function (){ if(this.isHidden){ if(!this.el){ this.render(); } this.el.show(); this.position(); this.isHidden=false; this.trigger('show'); }}; Popover.prototype.hide=function (){ if(!this.isHidden){ this.el.hide(); this.isHidden=true; this.trigger('hide'); }}; Popover.prototype.render=function (){ var _this=this; var options=this.options; this.el=$('
') .addClass(options.className||'') .css({ top: 0, left: 0 }) .append(options.content) .appendTo(options.parentEl); this.el.on('click', '.fc-close', function (){ _this.hide(); }); if(options.autoHide){ this.listenTo($(document), 'mousedown', this.documentMousedown); }}; Popover.prototype.documentMousedown=function (ev){ if(this.el&&!$(ev.target).closest(this.el).length){ this.hide(); }}; Popover.prototype.removeElement=function (){ this.hide(); if(this.el){ this.el.remove(); this.el=null; } this.stopListeningTo($(document), 'mousedown'); }; Popover.prototype.position=function (){ var options=this.options; var origin=this.el.offsetParent().offset(); var width=this.el.outerWidth(); var height=this.el.outerHeight(); var windowEl=$(window); var viewportEl=util_1.getScrollParent(this.el); var viewportTop; var viewportLeft; var viewportOffset; var top; var left; top=options.top||0; if(options.left!==undefined){ left=options.left; } else if(options.right!==undefined){ left=options.right - width; }else{ left=0; } if(viewportEl.is(window)||viewportEl.is(document)){ viewportEl=windowEl; viewportTop=0; viewportLeft=0; }else{ viewportOffset=viewportEl.offset(); viewportTop=viewportOffset.top; viewportLeft=viewportOffset.left; } viewportTop +=windowEl.scrollTop(); viewportLeft +=windowEl.scrollLeft(); if(options.viewportConstrain!==false){ top=Math.min(top, viewportTop + viewportEl.outerHeight() - height - this.margin); top=Math.max(top, viewportTop + this.margin); left=Math.min(left, viewportLeft + viewportEl.outerWidth() - width - this.margin); left=Math.max(left, viewportLeft + this.margin); } this.el.css({ top: top - origin.top, left: left - origin.left }); }; Popover.prototype.trigger=function (name){ if(this.options[name]){ this.options[name].apply(this, Array.prototype.slice.call(arguments, 1)); }}; return Popover; }()); exports.default=Popover; ListenerMixin_1.default.mixInto(Popover); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var util_1=__webpack_require__(4); var EventRenderer_1=__webpack_require__(42); var DayGridEventRenderer= (function (_super){ tslib_1.__extends(DayGridEventRenderer, _super); function DayGridEventRenderer(dayGrid, fillRenderer){ var _this=_super.call(this, dayGrid, fillRenderer)||this; _this.dayGrid=dayGrid; return _this; } DayGridEventRenderer.prototype.renderBgRanges=function (eventRanges){ eventRanges=$.grep(eventRanges, function (eventRange){ return eventRange.eventDef.isAllDay(); }); _super.prototype.renderBgRanges.call(this, eventRanges); }; DayGridEventRenderer.prototype.renderFgSegs=function (segs){ var rowStructs=this.rowStructs=this.renderSegRows(segs); this.dayGrid.rowEls.each(function (i, rowNode){ $(rowNode).find('.fc-content-skeleton > table').append(rowStructs[i].tbodyEl); }); }; DayGridEventRenderer.prototype.unrenderFgSegs=function (){ var rowStructs=this.rowStructs||[]; var rowStruct; while ((rowStruct=rowStructs.pop())){ rowStruct.tbodyEl.remove(); } this.rowStructs=null; }; DayGridEventRenderer.prototype.renderSegRows=function (segs){ var rowStructs=[]; var segRows; var row; segRows=this.groupSegRows(segs); for (row=0; row < segRows.length; row++){ rowStructs.push(this.renderSegRow(row, segRows[row])); } return rowStructs; }; DayGridEventRenderer.prototype.renderSegRow=function (row, rowSegs){ var colCnt=this.dayGrid.colCnt; var segLevels=this.buildSegLevels(rowSegs); var levelCnt=Math.max(1, segLevels.length); var tbody=$(''); var segMatrix=[]; var cellMatrix=[]; var loneCellMatrix=[]; var i; var levelSegs; var col; var tr; var j; var seg; var td; function emptyCellsUntil(endCol){ while (col < endCol){ td=(loneCellMatrix[i - 1]||[])[col]; if(td){ td.attr('rowspan', parseInt(td.attr('rowspan')||1, 10) + 1); }else{ td=$(''); tr.append(td); } cellMatrix[i][col]=td; loneCellMatrix[i][col]=td; col++; }} for (i=0; i < levelCnt; i++){ levelSegs=segLevels[i]; col=0; tr=$(''); segMatrix.push([]); cellMatrix.push([]); loneCellMatrix.push([]); if(levelSegs){ for (j=0; j < levelSegs.length; j++){ seg=levelSegs[j]; emptyCellsUntil(seg.leftCol); td=$('').append(seg.el); if(seg.leftCol!==seg.rightCol){ td.attr('colspan', seg.rightCol - seg.leftCol + 1); }else{ loneCellMatrix[i][col]=td; } while (col <=seg.rightCol){ cellMatrix[i][col]=td; segMatrix[i][col]=seg; col++; } tr.append(td); }} emptyCellsUntil(colCnt); this.dayGrid.bookendCells(tr); tbody.append(tr); } return { row: row, tbodyEl: tbody, cellMatrix: cellMatrix, segMatrix: segMatrix, segLevels: segLevels, segs: rowSegs };}; DayGridEventRenderer.prototype.buildSegLevels=function (segs){ var levels=[]; var i; var seg; var j; this.sortEventSegs(segs); for (i=0; i < segs.length; i++){ seg=segs[i]; for (j=0; j < levels.length; j++){ if(!isDaySegCollision(seg, levels[j])){ break; }} seg.level=j; (levels[j]||(levels[j]=[])).push(seg); } for (j=0; j < levels.length; j++){ levels[j].sort(compareDaySegCols); } return levels; }; DayGridEventRenderer.prototype.groupSegRows=function (segs){ var segRows=[]; var i; for (i=0; i < this.dayGrid.rowCnt; i++){ segRows.push([]); } for (i=0; i < segs.length; i++){ segRows[segs[i].row].push(segs[i]); } return segRows; }; DayGridEventRenderer.prototype.computeEventTimeFormat=function (){ return this.opt('extraSmallTimeFormat'); }; DayGridEventRenderer.prototype.computeDisplayEventEnd=function (){ return this.dayGrid.colCnt===1; }; DayGridEventRenderer.prototype.fgSegHtml=function (seg, disableResizing){ var view=this.view; var eventDef=seg.footprint.eventDef; var isAllDay=seg.footprint.componentFootprint.isAllDay; var isDraggable=view.isEventDefDraggable(eventDef); var isResizableFromStart = !disableResizing&&isAllDay && seg.isStart&&view.isEventDefResizableFromStart(eventDef); var isResizableFromEnd = !disableResizing&&isAllDay && seg.isEnd&&view.isEventDefResizableFromEnd(eventDef); var classes=this.getSegClasses(seg, isDraggable, isResizableFromStart||isResizableFromEnd); var skinCss=util_1.cssToStr(this.getSkinCss(eventDef)); var timeHtml=''; var timeText; var titleHtml; classes.unshift('fc-day-grid-event', 'fc-h-event'); if(seg.isStart){ timeText=this.getTimeText(seg.footprint); if(timeText){ timeHtml='' + util_1.htmlEscape(timeText) + ''; }} titleHtml = '' + (util_1.htmlEscape(eventDef.title||'')||' ') + ''; return '' + '
' + (this.dayGrid.isRTL ? titleHtml + ' ' + timeHtml : timeHtml + ' ' + titleHtml ) + '
' + (isResizableFromStart ? '
' : '') + (isResizableFromEnd ? '
' : '') + ''; }; return DayGridEventRenderer; }(EventRenderer_1.default)); exports.default=DayGridEventRenderer; function isDaySegCollision(seg, otherSegs){ var i; var otherSeg; for (i=0; i < otherSegs.length; i++){ otherSeg=otherSegs[i]; if(otherSeg.leftCol <=seg.rightCol && otherSeg.rightCol >=seg.leftCol){ return true; }} return false; } function compareDaySegCols(a, b){ return a.leftCol - b.leftCol; } }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var HelperRenderer_1=__webpack_require__(58); var DayGridHelperRenderer= (function (_super){ tslib_1.__extends(DayGridHelperRenderer, _super); function DayGridHelperRenderer(){ return _super!==null&&_super.apply(this, arguments)||this; } DayGridHelperRenderer.prototype.renderSegs=function (segs, sourceSeg){ var helperNodes=[]; var rowStructs; rowStructs=this.eventRenderer.renderSegRows(segs); this.component.rowEls.each(function (row, rowNode){ var rowEl=$(rowNode); var skeletonEl=$('
'); var skeletonTopEl; var skeletonTop; if(sourceSeg&&sourceSeg.row===row){ skeletonTop=sourceSeg.el.position().top; }else{ skeletonTopEl=rowEl.find('.fc-content-skeleton tbody'); if(!skeletonTopEl.length){ skeletonTopEl=rowEl.find('.fc-content-skeleton table'); } skeletonTop=skeletonTopEl.position().top; } skeletonEl.css('top', skeletonTop) .find('table') .append(rowStructs[row].tbodyEl); rowEl.append(skeletonEl); helperNodes.push(skeletonEl[0]); }); return $(helperNodes); }; return DayGridHelperRenderer; }(HelperRenderer_1.default)); exports.default=DayGridHelperRenderer; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var FillRenderer_1=__webpack_require__(57); var DayGridFillRenderer= (function (_super){ tslib_1.__extends(DayGridFillRenderer, _super); function DayGridFillRenderer(){ var _this=_super!==null&&_super.apply(this, arguments)||this; _this.fillSegTag='td'; return _this; } DayGridFillRenderer.prototype.attachSegEls=function (type, segs){ var nodes=[]; var i; var seg; var skeletonEl; for (i=0; i < segs.length; i++){ seg=segs[i]; skeletonEl=this.renderFillRow(type, seg); this.component.rowEls.eq(seg.row).append(skeletonEl); nodes.push(skeletonEl[0]); } return nodes; }; DayGridFillRenderer.prototype.renderFillRow=function (type, seg){ var colCnt=this.component.colCnt; var startCol=seg.leftCol; var endCol=seg.rightCol + 1; var className; var skeletonEl; var trEl; if(type==='businessHours'){ className='bgevent'; }else{ className=type.toLowerCase(); } skeletonEl=$('
' + '
' + '
'); trEl=skeletonEl.find('tr'); if(startCol > 0){ trEl.append(''); } trEl.append(seg.el.attr('colspan', endCol - startCol)); if(endCol < colCnt){ trEl.append(''); } this.component.bookendCells(trEl); return skeletonEl; }; return DayGridFillRenderer; }(FillRenderer_1.default)); exports.default=DayGridFillRenderer; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var BasicViewDateProfileGenerator_1=__webpack_require__(228); var UnzonedRange_1=__webpack_require__(5); var MonthViewDateProfileGenerator= (function (_super){ tslib_1.__extends(MonthViewDateProfileGenerator, _super); function MonthViewDateProfileGenerator(){ return _super!==null&&_super.apply(this, arguments)||this; } MonthViewDateProfileGenerator.prototype.buildRenderRange=function (currentUnzonedRange, currentRangeUnit, isRangeAllDay){ var renderUnzonedRange=_super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay); var start=this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay); var end=this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay); var rowCnt; if(this.opt('fixedWeekCount')){ rowCnt=Math.ceil(end.diff(start, 'weeks', true) ); end.add(6 - rowCnt, 'weeks'); } return new UnzonedRange_1.default(start, end); }; return MonthViewDateProfileGenerator; }(BasicViewDateProfileGenerator_1.default)); exports.default=MonthViewDateProfileGenerator; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var util_1=__webpack_require__(4); var EventRenderer_1=__webpack_require__(42); var ListEventRenderer= (function (_super){ tslib_1.__extends(ListEventRenderer, _super); function ListEventRenderer(){ return _super!==null&&_super.apply(this, arguments)||this; } ListEventRenderer.prototype.renderFgSegs=function (segs){ if(!segs.length){ this.component.renderEmptyMessage(); }else{ this.component.renderSegList(segs); }}; ListEventRenderer.prototype.fgSegHtml=function (seg){ var view=this.view; var calendar=view.calendar; var theme=calendar.theme; var eventFootprint=seg.footprint; var eventDef=eventFootprint.eventDef; var componentFootprint=eventFootprint.componentFootprint; var url=eventDef.url; var classes=['fc-list-item'].concat(this.getClasses(eventDef)); var bgColor=this.getBgColor(eventDef); var timeHtml; if(componentFootprint.isAllDay){ timeHtml=view.getAllDayHtml(); } else if(view.isMultiDayRange(componentFootprint.unzonedRange)){ if(seg.isStart||seg.isEnd){ timeHtml=util_1.htmlEscape(this._getTimeText(calendar.msToMoment(seg.startMs), calendar.msToMoment(seg.endMs), componentFootprint.isAllDay)); }else{ timeHtml=view.getAllDayHtml(); }}else{ timeHtml=util_1.htmlEscape(this.getTimeText(eventFootprint)); } if(url){ classes.push('fc-has-url'); } return '' + (this.displayEventTime ? '' + (timeHtml||'') + '' : '') + '' + '' + '' + '' + '' + util_1.htmlEscape(eventDef.title||'') + '' + '' + ''; }; ListEventRenderer.prototype.computeEventTimeFormat=function (){ return this.opt('mediumTimeFormat'); }; return ListEventRenderer; }(EventRenderer_1.default)); exports.default=ListEventRenderer; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var $=__webpack_require__(3); var EventPointing_1=__webpack_require__(59); var ListEventPointing= (function (_super){ tslib_1.__extends(ListEventPointing, _super); function ListEventPointing(){ return _super!==null&&_super.apply(this, arguments)||this; } ListEventPointing.prototype.handleClick=function (seg, ev){ var url; _super.prototype.handleClick.call(this, seg, ev); if(!$(ev.target).closest('a[href]').length){ url=seg.footprint.eventDef.url; if(url&&!ev.isDefaultPrevented()){ window.location.href=url; }} }; return ListEventPointing; }(EventPointing_1.default)); exports.default=ListEventPointing; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var EventSourceParser_1=__webpack_require__(38); var ArrayEventSource_1=__webpack_require__(52); var FuncEventSource_1=__webpack_require__(215); var JsonFeedEventSource_1=__webpack_require__(216); EventSourceParser_1.default.registerClass(ArrayEventSource_1.default); EventSourceParser_1.default.registerClass(FuncEventSource_1.default); EventSourceParser_1.default.registerClass(JsonFeedEventSource_1.default); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var ThemeRegistry_1=__webpack_require__(51); var StandardTheme_1=__webpack_require__(213); var JqueryUiTheme_1=__webpack_require__(214); var Bootstrap3Theme_1=__webpack_require__(258); var Bootstrap4Theme_1=__webpack_require__(259); ThemeRegistry_1.defineThemeSystem('standard', StandardTheme_1.default); ThemeRegistry_1.defineThemeSystem('jquery-ui', JqueryUiTheme_1.default); ThemeRegistry_1.defineThemeSystem('bootstrap3', Bootstrap3Theme_1.default); ThemeRegistry_1.defineThemeSystem('bootstrap4', Bootstrap4Theme_1.default); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var Theme_1=__webpack_require__(19); var Bootstrap3Theme= (function (_super){ tslib_1.__extends(Bootstrap3Theme, _super); function Bootstrap3Theme(){ return _super!==null&&_super.apply(this, arguments)||this; } return Bootstrap3Theme; }(Theme_1.default)); exports.default=Bootstrap3Theme; Bootstrap3Theme.prototype.classes={ widget: 'fc-bootstrap3', tableGrid: 'table-bordered', tableList: 'table', tableListHeading: 'active', buttonGroup: 'btn-group', button: 'btn btn-default', stateActive: 'active', stateDisabled: 'disabled', today: 'alert alert-info', popover: 'panel panel-default', popoverHeader: 'panel-heading', popoverContent: 'panel-body', headerRow: 'panel-default', dayRow: 'panel-default', listView: 'panel panel-default' }; Bootstrap3Theme.prototype.baseIconClass='glyphicon'; Bootstrap3Theme.prototype.iconClasses={ close: 'glyphicon-remove', prev: 'glyphicon-chevron-left', next: 'glyphicon-chevron-right', prevYear: 'glyphicon-backward', nextYear: 'glyphicon-forward' }; Bootstrap3Theme.prototype.iconOverrideOption='bootstrapGlyphicons'; Bootstrap3Theme.prototype.iconOverrideCustomButtonOption='bootstrapGlyphicon'; Bootstrap3Theme.prototype.iconOverridePrefix='glyphicon-'; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1=__webpack_require__(2); var Theme_1=__webpack_require__(19); var Bootstrap4Theme= (function (_super){ tslib_1.__extends(Bootstrap4Theme, _super); function Bootstrap4Theme(){ return _super!==null&&_super.apply(this, arguments)||this; } return Bootstrap4Theme; }(Theme_1.default)); exports.default=Bootstrap4Theme; Bootstrap4Theme.prototype.classes={ widget: 'fc-bootstrap4', tableGrid: 'table-bordered', tableList: 'table', tableListHeading: 'table-active', buttonGroup: 'btn-group', button: 'btn btn-primary', stateActive: 'active', stateDisabled: 'disabled', today: 'alert alert-info', popover: 'card card-primary', popoverHeader: 'card-header', popoverContent: 'card-body', headerRow: 'table-bordered', dayRow: 'table-bordered', listView: 'card card-primary' }; Bootstrap4Theme.prototype.baseIconClass='fa'; Bootstrap4Theme.prototype.iconClasses={ close: 'fa-times', prev: 'fa-chevron-left', next: 'fa-chevron-right', prevYear: 'fa-angle-double-left', nextYear: 'fa-angle-double-right' }; Bootstrap4Theme.prototype.iconOverrideOption='bootstrapFontAwesome'; Bootstrap4Theme.prototype.iconOverrideCustomButtonOption='bootstrapFontAwesome'; Bootstrap4Theme.prototype.iconOverridePrefix='fa-'; }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var ViewRegistry_1=__webpack_require__(22); var BasicView_1=__webpack_require__(62); var MonthView_1=__webpack_require__(229); ViewRegistry_1.defineView('basic', { 'class': BasicView_1.default }); ViewRegistry_1.defineView('basicDay', { type: 'basic', duration: { days: 1 }}); ViewRegistry_1.defineView('basicWeek', { type: 'basic', duration: { weeks: 1 }}); ViewRegistry_1.defineView('month', { 'class': MonthView_1.default, duration: { months: 1 }, defaults: { fixedWeekCount: true }}); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var ViewRegistry_1=__webpack_require__(22); var AgendaView_1=__webpack_require__(226); ViewRegistry_1.defineView('agenda', { 'class': AgendaView_1.default, defaults: { allDaySlot: true, slotDuration: '00:30:00', slotEventOverlap: true }}); ViewRegistry_1.defineView('agendaDay', { type: 'agenda', duration: { days: 1 }}); ViewRegistry_1.defineView('agendaWeek', { type: 'agenda', duration: { weeks: 1 }}); }), (function(module, exports, __webpack_require__){ Object.defineProperty(exports, "__esModule", { value: true }); var ViewRegistry_1=__webpack_require__(22); var ListView_1=__webpack_require__(230); ViewRegistry_1.defineView('list', { 'class': ListView_1.default, buttonTextKey: 'list', defaults: { buttonText: 'list', listDayFormat: 'LL', noEventsMessage: 'No events to display' }}); ViewRegistry_1.defineView('listDay', { type: 'list', duration: { days: 1 }, defaults: { listDayFormat: 'dddd' }}); ViewRegistry_1.defineView('listWeek', { type: 'list', duration: { weeks: 1 }, defaults: { listDayFormat: 'dddd', listDayAltFormat: 'LL' }}); ViewRegistry_1.defineView('listMonth', { type: 'list', duration: { month: 1 }, defaults: { listDayAltFormat: 'dddd' }}); ViewRegistry_1.defineView('listYear', { type: 'list', duration: { year: 1 }, defaults: { listDayAltFormat: 'dddd' }}); }), (function(module, exports){ Object.defineProperty(exports, "__esModule", { value: true }); }) ]); });